QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#545627#5074. Vision TesthewanyingTL 323ms3656kbC++141.4kb2024-09-03 15:44:052024-09-03 15:44:06

Judging History

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

  • [2024-09-03 15:44:06]
  • 评测
  • 测评结果:TL
  • 用时:323ms
  • 内存:3656kb
  • [2024-09-03 15:44:05]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define ll long long

const int N=1e5+5;
int n,m;
ll a[N],d[N],Dx2,Dx1;

ll gcd(ll a,ll b){return !b?a:gcd(b,a%b);}

void prt(ll a,ll b,ll c){
  cout<<a<<' '<<b<<' '<<c<<'\n';
}

bool chk(int l,int r,ll a,ll &b,ll c){
//   cerr<<"chk: "<<l<<' '<<r<<' '<<a<<' '<<b<<' '<<c<<endl;
  if(gcd(a,c)!=1) return false;
  if(a>=c||a<0) return false;
  for(b=0;b<c;b++){
    ll lst=0,A=b;
	bool fl=true;
    for(int i=l+1;i<=r;i++){
	  A+=a;
	  if((A/c)!=lst){
	    if(d[i]!=Dx2){fl=false;break;}
	  }else if(d[i]==Dx2){fl=false;break;}
	  lst=A/c;
    }
	if(fl) return true;
  }
  return false;
}

void qry(int l,int r){
  if(l==r) return prt(0,a[l],1);
  Dx1=-1,Dx2=-1;
  for(int i=l+1;i<=r;i++){
    if(Dx1==-1) Dx1=d[i];
	else if(d[i]!=Dx1) Dx2=d[i];
  }
  if(Dx2==-1) return prt(Dx1,a[l],1);
  if(Dx1>Dx2) swap(Dx1,Dx2);

//   cerr<<"Dx = "<<Dx1<<' '<<Dx2<<endl;

  ll ka=Dx1,kb=a[l],a=0,b=0,c=0,i;

  for(c=1,i=l;c<=r-l+1;c++,i++){
    a+=(d[i+1]==Dx2);
    if(gcd(a,c)==1&&chk(l,r,a,b,c)) break;
  }
  prt(ka*c+a,kb*c+b,c);
}

void SOLVE(){
  cin>>n;
  for(int i=1;i<=n;i++) cin>>a[i],d[i]=a[i]-a[i-1];//,cerr<<d[i]<<' ';
//   cerr<<endl;
  cin>>m;
  while(m--){
	int l,r;
	cin>>l>>r;
	qry(l,r);
  }
}

int main(){
  ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  int _;cin>>_;
  while(_--) SOLVE();
  return 0;
}

详细

Test #1:

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

input:

3
5
1 1 2 2 2
4
1 5
1 1
3 5
2 3
5
1 2 3 4 6
3
1 5
2 4
3 5
3
0 3 5
1
1 3

output:

1 4 3
0 1 1
0 2 1
1 1 1
5 4 4
1 2 1
3 6 2
5 1 2

result:

ok 24 numbers

Test #2:

score: 0
Accepted
time: 28ms
memory: 3584kb

input:

20000
5
216985264 261263380 305541495 349819610 394097726
5
2 3
3 5
1 2
1 1
5 5
5
375382625 514874812 654366999 793859186 933351373
5
3 5
2 5
2 4
4 4
1 2
5
4203556 117160178 230116801 343073423 456030045
5
2 5
1 1
3 4
2 4
5 5
5
925374406 933391410 941408414 949425418 957442422
5
3 4
5 5
2 3
1 3
4 5
...

output:

44278115 261263380 1
88556231 611082990 2
44278116 216985264 1
0 216985264 1
0 394097726 1
139492187 654366999 1
139492187 514874812 1
139492187 514874812 1
0 793859186 1
139492187 375382625 1
338869867 351480536 3
0 4203556 1
112956622 230116801 1
225913245 234320357 2
0 456030045 1
8017004 9414084...

result:

ok 300000 numbers

Test #3:

score: 0
Accepted
time: 28ms
memory: 3632kb

input:

20000
5
663398562 733306156 803213750 873121344 943028938
5
1 2
3 3
2 4
1 1
3 5
5
90107073 216544148 342981224 469418300 595855376
5
1 1
5 5
2 3
3 5
3 4
5
578795185 603695239 628595293 653495347 678395402
5
4 5
1 4
4 4
4 5
2 4
5
99770585 174616657 249462729 324308801 399154873
5
1 2
4 5
1 4
1 5
1 4
...

output:

69907594 663398562 1
0 803213750 1
69907594 733306156 1
0 663398562 1
69907594 803213750 1
0 90107073 1
0 595855376 1
126437076 216544148 1
126437076 342981224 1
126437076 342981224 1
24900055 653495347 1
24900054 578795185 1
0 653495347 1
24900055 653495347 1
24900054 603695239 1
74846072 99770585 ...

result:

ok 300000 numbers

Test #4:

score: 0
Accepted
time: 30ms
memory: 3648kb

input:

10000
10
34013891 48852155 63690419 78528682 93366946 108205209 123043473 137881737 152720000 167558264
10
1 8
6 9
7 7
2 6
2 3
8 10
5 7
3 8
10 10
5 6
10
65005189 120529926 176054663 231579399 287104136 342628873 398153610 453678347 509203084 564727820
10
7 10
3 4
8 9
6 9
3 7
4 6
5 6
2 8
1 6
2 5
10
2...

output:

74191318 170069459 5
44514791 324615629 3
0 123043473 1
29676527 97704311 2
14838264 48852155 1
29676527 275763474 2
29676527 186733892 2
74191318 318452095 5
0 167558264 1
14838263 93366946 1
166574210 1194460832 3
55524736 176054663 1
55524737 453678347 1
55524737 342628873 1
222098947 704218652 4...

result:

ok 300000 numbers

Test #5:

score: 0
Accepted
time: 30ms
memory: 3588kb

input:

10000
10
371965130 420545079 469125028 517704977 566284926 614864875 663444823 712024772 760604721 809184670
10
8 9
4 4
5 7
4 6
5 6
9 10
7 7
7 7
6 9
4 7
10
238386910 302937632 367488355 432039077 496589800 561140523 625691245 690241968 754792691 819343413
10
6 6
2 10
2 8
2 10
1 3
2 7
1 4
6 7
6 8
4 9...

output:

48579949 712024772 1
0 517704977 1
97159897 1132569853 2
48579949 517704977 1
48579949 566284926 1
48579949 760604721 1
0 663444823 1
0 663444823 1
145739846 1844594625 3
145739846 1553114933 3
0 561140523 1
193652168 908812897 3
193652168 908812897 3
193652168 908812897 3
129101445 476773820 2
1936...

result:

ok 300000 numbers

Test #6:

score: 0
Accepted
time: 317ms
memory: 3656kb

input:

1000
100
23443467 30975337 38507207 46039077 53570947 61102817 68634687 76166557 83698427 91230297 98762167 106294037 113825907 121357777 128889648 136421518 143953388 151485258 159017128 166548998 174080868 181612738 189144608 196676478 204208348 211740218 219272088 226803958 234335828 241867698 24...

output:

7531870 30975337 1
7531870 339782009 1
150637401 3782892160 20
210892361 1499986534 28
7531870 550674370 1
143105531 3736853082 19
173233011 3830626954 23
75318701 5205468896 10
210892361 2976233061 28
210892361 5506941393 28
210892361 2554448339 28
210892361 14786205277 28
210892361 7615865003 28
7...

result:

ok 300000 numbers

Test #7:

score: 0
Accepted
time: 323ms
memory: 3588kb

input:

1000
100
531924329 535185195 538446062 541706928 544967794 548228660 551489527 554750393 558011259 561272125 564532992 567793858 571054724 574315590 577576457 580837323 584098189 587359055 590619922 593880788 597141654 600402520 603663387 606924253 610185119 613445985 616706852 619967718 623228584 6...

output:

9782599 2300120097 3
13043465 2232045038 4
185869376 31063164300 57
55434726 11426406834 17
3260866 531924329 1
94565121 19208410410 29
13043465 2310305828 4
13043465 2323349293 4
13043465 2440740478 4
6521733 1566022060 2
94565121 18262759200 29
68478191 14731276866 21
6521733 1435587411 2
29347796...

result:

ok 300000 numbers

Test #8:

score: -100
Time Limit Exceeded

input:

100
1000
213684368 214116070 214547773 214979476 215411178 215842881 216274583 216706286 217137989 217569691 218001394 218433097 218864799 219296502 219728204 220159907 220591610 221023312 221455015 221886717 222318420 222750123 223181825 223613528 224045230 224476933 224908636 225340338 225772041 2...

output:

134691215 103440224601 312
71230931 59761361035 165
134691215 102497386096 312
113537787 57788517879 263
5612134 2862078796 13
50077503 54683656021 116
21153428 13960849665 49
92384359 70949384823 214
50077503 39960870135 116
248229002 174748373186 575
113537787 104679623911 263
21153428 14341611369...

result: