Submission #363374

# Submission time Handle Problem Language Result Execution time Memory
363374 2021-02-05T18:23:22 Z mosiashvililuka Cat (info1cup19_cat) C++14
36.25 / 100
617 ms 16748 KB
#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e,i,j,ii,jj,zx,xc,t,tes,f[200009],boo,pi,k[200009],qi,qqi;
pair <int, int> p[3000009],q[200009],qq[200009];
int main(){
	//ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	//cin>>tes;
	scanf("%d\n",&tes);
	for(t=1; t<=tes; t++){
		//cin>>a;
		if(t!=tes) scanf("%d\n",&a); else scanf("%d",&a);
		for(i=1; i<=a; i++){
			//cin>>f[i];
			if(i==a) scanf("%d",&f[i]); else scanf("%d ",&f[i]);
		}
		boo=0;
		for(i=1; i<=a/2; i++){
			if(f[i]>a/2){
				boo=1;
				break;
			}
		}
		if(boo==0){
			/*boo=0;
			for(i=1; i<=a/2; i++){
				if(f[a-i+1]-f[i]!=a/2){
					boo=1;
					break;
				}
			}
			if(boo==1){
				cout<<-1<<endl;
				continue;
			}*/
			pi=0;
			for(i=1; i<=a/2; i++){
				k[f[i]]=i;
			}
			for(i=1; i<=a/2; i++){
				if(k[i]==i) continue;
				pi++;
				p[pi].first=k[i];
				p[pi].second=i;
				c=k[i];d=i;
				swap(k[i],k[f[i]]);
				swap(f[c],f[d]);
			}
			for(i=1; i<=pi; i++){
				swap(f[a-p[i].first+1],f[a-p[i].second+1]);
			}
			boo=0;
			for(i=2; i<=a; i++){
				if(f[i]<f[i-1]){
					boo=1;
					break;
				}
			}
			if(boo==1){
//				cout<<-1<<endl;
				printf("-1\n");
				continue;
			}
			//cout<<pi<<" "<<pi<<endl;
			printf("%d %d\n",pi,pi);
			for(i=1; i<=pi; i++){
				//cout<<p[i].first<<" "<<p[i].second<<endl;
				printf("%d %d\n",p[i].first,p[i].second);
			}
			continue;
		}
		boo=0;
		for(i=1; i<=a/2; i++){
			j=a-i+1;
			if(f[i]+f[j]!=a+1){
				boo=1;
				break;
			}
		}
		if(boo==0){
			//printf("%d 0\n",a);
		}else{
			printf("-1\n");
			continue;
		}
		qi=0;qqi=0;
		for(i=1; i<=a/2; i++){
			if(f[i]>f[a-i+1]){
				qi++;
				q[qi].first=i;
				q[qi].second=a-i+1;
			}else{
				/*qqi++;
				qq[qqi].first=a-i+1;
				qq[qqi].second=i;*/
			}
		}
		if(qi%2==1){
			printf("-1\n");
			continue;
		}else{
			printf("%d 0\n",a);
		}
	}
	return 0;
}

Compilation message

cat.cpp: In function 'int main()':
cat.cpp:8:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    8 |  scanf("%d\n",&tes);
      |  ~~~~~^~~~~~~~~~~~~
cat.cpp:11:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   11 |   if(t!=tes) scanf("%d\n",&a); else scanf("%d",&a);
      |              ~~~~~^~~~~~~~~~~
cat.cpp:11:42: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   11 |   if(t!=tes) scanf("%d\n",&a); else scanf("%d",&a);
      |                                     ~~~~~^~~~~~~~~
cat.cpp:14:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   14 |    if(i==a) scanf("%d",&f[i]); else scanf("%d ",&f[i]);
      |             ~~~~~^~~~~~~~~~~~
cat.cpp:14:42: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   14 |    if(i==a) scanf("%d",&f[i]); else scanf("%d ",&f[i]);
      |                                     ~~~~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 492 KB Correctly distinguished between possibility and impossibility
# Verdict Execution time Memory Grader output
1 Correct 29 ms 748 KB Output is correct
2 Correct 30 ms 748 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 492 KB Correctly distinguished between possibility and impossibility
2 Correct 29 ms 748 KB Output is correct
3 Correct 30 ms 748 KB Output is correct
4 Correct 21 ms 984 KB Correctly distinguished between possibility and impossibility
5 Correct 9 ms 620 KB Correctly distinguished between possibility and impossibility
6 Correct 7 ms 492 KB Correctly distinguished between possibility and impossibility
# Verdict Execution time Memory Grader output
1 Correct 29 ms 748 KB Output is correct
2 Correct 30 ms 748 KB Output is correct
3 Correct 617 ms 13420 KB Output is correct
4 Correct 570 ms 12140 KB Output is correct
5 Correct 613 ms 14700 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 492 KB Correctly distinguished between possibility and impossibility
2 Correct 29 ms 748 KB Output is correct
3 Correct 30 ms 748 KB Output is correct
4 Correct 21 ms 984 KB Correctly distinguished between possibility and impossibility
5 Correct 9 ms 620 KB Correctly distinguished between possibility and impossibility
6 Correct 7 ms 492 KB Correctly distinguished between possibility and impossibility
7 Correct 617 ms 13420 KB Output is correct
8 Correct 570 ms 12140 KB Output is correct
9 Correct 613 ms 14700 KB Output is correct
10 Correct 379 ms 14196 KB Correctly distinguished between possibility and impossibility
11 Correct 374 ms 14572 KB Correctly distinguished between possibility and impossibility
12 Correct 383 ms 16748 KB Correctly distinguished between possibility and impossibility
13 Correct 384 ms 16108 KB Correctly distinguished between possibility and impossibility
14 Correct 390 ms 16748 KB Correctly distinguished between possibility and impossibility