打%你赛考了这题,同学写了这种做法,结果赛后过了。这种做法是否有正确性?如果没有正确性,求Hack。
Code:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int q,n,m,x;
struct node{
int val,id;
}a[114514];
int ans[114514];
bool cmp(node x,node y){ return x.val<y.val; }
signed main(){
cin>>q;
while(q--){
cin>>n>>m>>x;
for(int i=1;i<=n;i++){
cin>>a[i].val;
a[i].id=i;
}
sort(a+1,a+n+1,cmp);
printf("YES\n");
for(int i=1;i<=n;i++) ans[a[i].id]=(i-1)%m+1;
for(int i=1;i<=n;i++) cout<<ans[i]<<" ";
cout<<endl;
}
return 0;
}