题解 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;
}

对没错就是这样做的

posted @ 2020-03-23 13:04  Laser_Crystal  阅读(219)  评论(0编辑  收藏  举报