[NOIP2017模拟]操作

来源:互联网 发布:飞车29雷诺测评数据 编辑:程序博客网 时间:2024/06/07 16:47

2017.8.28 T1 1949

样例数据1
输入

3

1 2 3
输出

2

样例数据2
输入

2
5 5

输出

5

分析:有过一道概率题的教训,这道看起来就是个送分题,直接暴力操作个2000000次,如果还没有完成就输出”No!!!!!!!!!!”(当初还在纠结用全角还是半角感叹号……)。其实,这道题不存在无解的情况orz(瞧瞧这有多坑)。

代码
加不加判断No都无所谓了hhhh

#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<ctime>#include<cmath>#include<algorithm>#include<cctype>#include<iomanip>#include<queue>#include<set>using namespace std;int getint(){    int sum=0,f=1;    char ch;    for(ch=getchar();(ch<'0'||ch>'9')&&ch!='-';ch=getchar());    if(ch=='-')    {        f=-1;        ch=getchar();    }    for(;ch>='0'&&ch<='9';ch=getchar())        sum=(sum<<3)+(sum<<1)+ch-48;    return sum*f;}int n,num,x,a[15];int main(){    freopen("change.in","r",stdin);    freopen("change.out","w",stdout);    n=getint();    for(int i=1;i<=n;++i)        a[i]=getint();    sort(a+1,a+n+1);    while(a[1]!=a[n])    {        num++;        if(num>2000000)            break;        x=a[n]-a[1];        a[1]=x;        a[n]=x;        sort(a+1,a+n+1);    }    if(a[1]==a[n])        cout<<a[1]<<'\n';    else        cout<<"No!!!!!!!!!!"<<'\n';    return 0;}

本题结。

原创粉丝点击