题解 CF896B 【Ithea Plays With Chtholly】

有可爱的珂朵莉在题目里面,再难也要做啊对不对qwq

什么?你问我珂朵莉是什么

哈哈哈我先放图哈哈哈

好好好不皮了,切入正题

那么问题来了,交互提是个什么鬼?

我也是看了帖子之后才懂的

那么就姑且抛开交互题这个奇葩的东西不说,先考虑如果这不是交互题该怎么做

自己推导方案推了好久才做出来……

易知,

(2x<=c)的时候,就从前往后找,找到第一个大于这个数的位置补上或者找到第一个空位置填上

(2x>c)的时候,就从后往前找,找到第一个小于这个数的位置补上或者找到第一个空位置填上

这么一通瞎搞之后你就赢了,因为珂朵莉是很可爱的吖对吧

那么问题又回到了交互提上面来了,

交互提的确很有意思,但是fflush(stdout) in C/C++又是个什么东东啊……

我自己的英语不好,就瞎猜了个意思,就是每行输出后,要刷新一下,加一条语句fflush(stdout);(大概如此吧)

代码如下:

#include <bits/stdc++.h>
using namespace std;
long long t[1005]={0};//其实int也能过,就是被卡long long卡怕了qwq
int main()
{
  long long n,m,c,x;
  cin>>n>>m>>c;
  while(m--)
  {
    cin>>x;
    if(x*2<=c)
    {
      for(int i=1; i<=n; i++)
        if(t[i]>x||!t[i]) { t[i]=x; cout<<i<<endl; break; }
    }
    else
    {
      for(int i=n; i>0; i--)
        if(t[i]<x||!t[i]) { t[i]=x; cout<<i<<endl; break; }
    }
    fflush(stdout);
  }
  return 0;
}

对没错就是这样做的

原文地址:https://www.cnblogs.com/oierscw/p/12551594.html