#1
WA
0ms/11886kB
#2
WA
36ms/11886kB
#3
AC
0ms/11886kB
#4
WA
0ms/11886kB
#5
WA
0ms/11886kB
#6
WA
0ms/11886kB
#7
WA
0ms/11886kB
#8
WA
19ms/11886kB
#9
WA
0ms/11886kB
#10
WA
2ms/11886kB
我也是
by wanghongyu @ 2017-06-09 19:01:48
代码
```cpp
#include<iostream>
using namespace std;
int n,t,i,j,ma,a[1005];
int main()
{
cin>>n>>t;
for(i=1;i<=n;i++)cin>>a[i];
for(i=1;i<=t;i++)
{
ma=1;
for(j=2;j<=n;j++)if (a[j]>a[ma]) ma=j;
cout<<ma<<"\n";
for(j=1;j<=n;j++)if (j!=ma) a[j]=a[j]+a[ma]/(n-1);
a[ma]=a[ma]%(n-1);
j=0;
while(a[ma]--)
{
j++;
if (j=ma) j++;
a[j]++;
}
a[ma]=0;
}
return 0;
}
```
by wanghongyu @ 2017-06-09 19:06:13
改了一下,20分……
```cpp
#include <bits/stdc++.h>
using namespace std;
int n,t;
struct N{
int id,s;
}a[1005];
inline bool cmp(N p,N q){
if (p.s!=q.s)return p.s>q.s;
else return p.id<q.id;
}
inline bool cmp1(N p,N q){return p.id<q.id;}
int main(void){
scanf ("%d%d",&n,&t);
for (int i=0;i<n;i++){
scanf ("%d",&a[i].s);a[i].id=i;}
while (t--){
sort (a,a+n,cmp);
printf ("%d\n",a[0].id+1);
for (int i=1;i<n;i++)
a[i].s+=a[0].s/(n-1);
a[0].s%=(n-1);
int k=a[0].s;
a[0].s=0;
if (k){
sort(a,a+n,cmp1);
for (int i=0;i<k;i++)a[i].s++;
}
}
}
```
by 引领天下 @ 2017-06-25 08:16:05
这题怎么难吗?
by sjl40 @ 2017-10-28 22:38:19
dalao都错了。
by sjl40 @ 2017-10-28 22:39:15
我觉得不能用结构体,不能改变他们原来的位置。
奉上AC代码。
/\*
```cpp
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int b[1005],a[1005];
int n,m,j,i,ma,mai;
int main()
{
cin>>n>>m;
for(i=1;i<=n;i++){cin>>a[i];b[i]=i;}
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)if(a[j]>ma){ma=a[j];mai=j;}
cout<<b[mai]<<endl;
for(j=1;j<=n;j++)if(j!=mai)a[j]+=a[mai]/(n-1);
a[mai]%=(n-1);
while(a[mai]!=0)
for(j=1;j<=n;j++){if(j!=mai){a[j]++;a[mai]--;}if(a[mai]==0)break;}
ma=mai=0;
}
}
*/
```
by sjl40 @ 2017-10-28 23:04:36
其实能用结构体(+排序),但是有点低效
一名蒟蒻的代码
```cpp
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,k,t,m,x,i,j;
struct node
{
int v,b;
}a[1010];
bool cmp1(node x,node y)
{
if(x.v>y.v)
return 1;
if(x.v==y.v && x.b<y.b)
return 1;
return 0;
}
bool cmp(node x,node y)
{
return x.b<y.b;
}
int main()
{
scanf("%d%d",&n,&t);
if(n==1)
{
scanf("%d",&x);
for(i=1;i<=t;i++)
printf("%d\n",x);
return 0;
}
for(i=1;i<=n;i++)
{
scanf("%d",&a[i].v);
a[i].b=i;
}
for(i=1;i<=t;i++)
{
sort(a+1,a+n+1,cmp1);
printf("%d\n",a[1].b);
k=a[1].v/(n-1);
m=a[1].v%(n-1);
for(j=2;j<=n;j++)
a[j].v+=k;
sort(a+2,a+n+1,cmp);
for(j=2;j<=m+1;j++)
a[j].v++;
a[1].v=0;
}
}
```
by yali_hzy @ 2017-10-31 18:00:45
20
```
#include <bits/stdc++.h>
using namespace std;
#define N 1100
int r[N],n,t;
namespace doit
{
inline int read()
{
int x=0,p=1;
char c;
c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')
p=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
x=x*10+c-'0';
c=getchar();
}
return x*p;
}
inline void input()
{
n=read();t=read();
for(register int i=1;i<=n;i++)
r[i]=read();;
}
inline int solve()
{
int maxx=0,mid;
for(register int i=1;i<=n;i++)
if(r[i]>maxx)
{
mid=i;
maxx=r[i];
}
int k=maxx/(n-1),m=maxx%(n-1);
if(m==0)
{
for(register int i=1;i<=n;i++)
{
if(i!=mid)
r[i]+=k;
else
r[i]=0;
}
}
else
{
for(register int i=1;i<=n;i++)
{
if(i!=mid)
r[i]+=k;
else
r[i]=0;
}
for(register int i=1;i<=m;i++)
if(i!=mid)
r[i]++;
}
return mid;
}
inline void output()
{
int out=0;
std::cout<<"\n";
for(register int i=1;i<=t;i++)
{
out=solve();
std::cout<<out<<"\n";
}
}
}
int main()
{
ios::sync_with_stdio(false);
doit::input();
doit::output();
}
```
by TRZ_2007 @ 2019-02-11 13:59:30