QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#540244#8940. Piggy Sortucup-team4702#RE 0ms3732kbC++171.3kb2024-08-31 16:42:562024-08-31 16:42:57

Judging History

你现在查看的是最新测评结果

  • [2024-08-31 16:42:57]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:3732kb
  • [2024-08-31 16:42:56]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
mt19937 g(time(0));
int calc(int x,int y,int z,int a,int b,int k){
  return z*b-y*a+(a-b)*k;
}
main(){
  ios::sync_with_stdio(false);
  cin.tie(0); cout.tie(0);
  int t; cin>>t;
  while(t--){
    int n,m; cin>>n>>m;
    vector a(m,vector<int>(n));
    vector<int> c(m),c2(m),p(m);
    for(int i=0;i<m;i++)
      for(auto &j:a[i])cin>>j,c[i]+=j,c2[i]+=j*j;
    iota(p.begin(),p.end(),0);
    sort(p.begin()+1,p.end(),[&](int x,int y){
      return c[x]<c[y];
    });
    vector<int> v(n),r(n),p2(n);
    for(int i=0;i<n;i++)
      for(int j=0;j<n;j++)
        for(int k=0;k<n;k++){
          int x=a[0][i],y=a[p[1]][j],z=a[p[2]][k],d=g()%(int)1e6+1;
          int c20=c2[0]-x*x,c21=c2[p[1]]-y*y,c22=c2[p[2]]-z*z;
          int nx=x+d,ny=y+d,nz=z+d;
          c20+=nx*nx,c21+=ny*ny,c22+=nz*nz;
          int aa=c[p[2]]-c[0],bb=c[p[1]]-c[0];
          if(calc(c20,c21,c22,aa,bb,nx*nx)==calc(c2[0],c2[p[1]],c2[p[2]],aa,bb,x*x)) v[i]=y-x;
        }
    iota(r.begin(),r.end(),0);
    sort(r.begin(),r.end(),[&](int x,int y){
      return v[x]==v[y]?a[0][x]<a[0][y]:v[x]<v[y];
    });
    for(int i=0;i<n;i++)
      p2[r[i]]=i;
    for(int i:p2)cout<<i+1<<' ';
    cout<<'\n';
  }
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3732kb

input:

3
2 4
1 2
3 4
5 6
7 8
1 2
1
1
3 4
1 2 3
6 9 9
10 15 17
12 18 21

output:

1 2 
1 
3 1 2 

result:

ok 3 lines

Test #2:

score: -100
Runtime Error

input:

41
1 2
-19
9531
2 3
11 13
3175 4759
2211 3313
10 19
-54 -25 -19 -18 -1 3 61 63 85 88
-54 753 863 2397 3111 4649 4671 4756 5507 7762
-54 369 479 1245 1575 2345 2367 2452 2819 3922
-54 553 663 1797 2311 3449 3471 3556 4107 5762
-54 87 197 399 447 653 675 760 845 1102
-54 320 430 1098 1379 2051 2073 21...

output:


result: