蓝桥杯分糖果

    xiaoxiao2021-03-25  45

    点击打开链接

    模拟就过了。

    #include <stdio.h> #include <string.h> #include <iostream> #include <map> #include <math.h> #define LL long long using namespace std; const int maxn=1e2+10; const int mod=1e9+7; int a[maxn],b[maxn]; int v[2000]={0},f=0; int main(){ int n,ans=0; scanf("%d",&n); for(int i=0;i<n;++i){ scanf("%d",&a[i]); v[a[i]]++; if(v[a[i]]==n) f=1; } while(1){ if(f) break; for(int i=0;i<n;++i) b[i]=a[i]/2; memset(v,0,sizeof(v)); for(int i=0;i<n;++i){ if(i==n-1){ a[i]=b[i]+b[0]; if(a[i]&1) a[i]+=1,ans++; v[a[i]]++; if(v[a[i]]==n) { f=1; break; } }else{ a[i]=b[i]+b[i+1]; if(a[i]&1) a[i]+=1,ans++; v[a[i]]++; if(v[a[i]]==n) { f=1; break; } } } } printf("%d\n",ans); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-50256.html

    最新回复(0)