[CF952X]April Fools Contest 2018

又是一年愚人节时,今年CF照例举办了愚人节比赛。

不过今年出题的人倒是说了:This year I tried to make the problems less puzzling and more versatile.

也就是说,题目的费解程度会下降,但会更有意思。

还有一点:今年的比赛用不到 OEIS 了,再也不用研究数列找规律了。

接下来进入正题。

题目链接

http://codeforces.com/contest/952

A. Quirky Quantifiers

题解

其实没那么复杂,就是判断奇数偶数而已。

#include <stdio.h>
int main()
{
 int a;
 scanf("%d",&a);
 if(a%2)printf("1");
 else printf("0");
 return 0;
}

B. A Map of the Cat

大意

一道交互式问题,程序需输出一个数,根据交互程序的回答判断出这只猫是正常的猫还是脾气大的猫。

题解

原来以为输出会区分大小写的(可以看那两幅图),结果却并非如此。

于是只能对整个字符串进行比较了(string 大法好啊),注意不要带末尾的那标点符号。

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;
string re;
int main()
{
 for(int i=0;i<=9;i++)
 {
  cout<<i<<endl;
  fflush(stdout);
  getline(cin,re);
  if(re=="no")continue;
  else if(re=="great"||re=="not bad"||re=="cool"||re=="don't touch me"||re=="don't think so")cout<<"normal";
  else cout<<"grumpy";
  fflush(stdout);
  return 0;
 }
}

C. Ravioli Sort

大意

给出馄饨排序的定义:将所有馄饨堆按输入顺序排成一列,随后取出其中最高的一堆(如果高度相同,取出最靠左的一堆),放入结果序列。

但是一旦相邻两堆的高度差大于等于 \(2\),较高堆就会向较低堆滑落,导致排序失败。

给出馄饨序列,试求能否成功排序。

题解

也不算是一道太复杂的题啦,按定义模拟一下就好。

#include <cstdio>
#include <algorithm>
using namespace std;
int a[15];
int main()
{
 int n;
 scanf("%d",&n);
 for(int i=1;i<=n;i++)
 {
  scanf("%d",&a[i]);
  if(abs(a[i]-a[i-1])>=2&&i!=1)
  {
   printf("NO");
   return 0;
  }
 }
 sort(a+1,a+n+1);
 for(int i=1;i<n;i++)
  if(a[i+1]-a[i]>=2)
  {
   printf("NO");
   return 0;
  }
 printf("YES");
 return 0;
}

D. I’m Feeling Lucky!

大意

其实就是轮盘赌而已。

题解

red 的格子较多,所以当然要选 red 了(没错,轮盘赌的结果是随机的,所以你有可能会 WA,但显然,赌那些成功概率低的格子是不明智的)。

#include<stdio.h>
int main()
{
 printf("red\n");
 return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注