Submission #239581

# Submission time Handle Problem Language Result Execution time Memory
239581 2020-06-16T13:22:45 Z ctziapo Xylophone (JOI18_xylophone) C++14
11 / 100
14 ms 384 KB
#include "xylophone.h"
#include<cmath>
#include<map>
static int A[5000];

using namespace std;

void solve(int N) {
    int n=N;
	int value = query(1, N);
    int pf;
  //  cout<<" find first "<<endl;
	for(int i=1;i<=n;i++){
        int t=query(i,N);
        if(t!=n-1){
           pf=i-1;
           break;
        }
	}

	int f[n+2]={};

	//cout<<pf<<endl;
    answer(pf,1);
    f[1]=1;
  //  cout<<"os edo"<<endl;
    int a[n+3]={};
    a[pf]=1;
    if(pf!=1){
        a[pf-1] = query(pf-1,pf)+1;
        answer(pf-1,a[pf-1]);
        f[a[pf-1]]=1;
    }
    if(pf!=N){
        a[pf+1] = query(pf,pf+1)+1;
        answer(pf+1,a[pf+1]);
        f[a[pf+1]]=1;
    }

   // cout<<"my answer "<<endl;
	//for(int i = 1; i <= N; i++) {
	//	cout<<a[i]<<" ";
	//}


    int s=pf+2;

    while(s<=n){

        int t=query(s-1,s);
        if(f[a[s-1]+t]==1){
            a[s]=a[s-1]-t;
            answer(s,a[s]);
            f[a[s]]=1;
            s++;
            continue;
        }
        if(f[a[s-1]-t]==1){
            a[s]=a[s-1]+t;
            answer(s,a[s]);
            f[a[s]]=1;
            s++;
            continue;
        }
        int t2=query(s-2,s);

        if(abs(a[s-1]-a[s-2])==t2){
            if(a[s-1] > a[s-2]){
                a[s]=a[s-1]-t;
                answer(s,a[s]);
            }
            else{
                a[s]=a[s-1]+t;
                answer(s,a[s]);
            }
        }
        else
        {
            if(a[s-1] > a[s-2]){
                if(a[s-1]-a[s-2] + t == t2){
                a[s]=a[s-1]+t;
                answer(s,a[s]);
                }
                else
                {
                a[s]=a[s-1]-t;
                answer(s,a[s]);
                }
            }
            else{
                if(a[s-2]-a[s-1] + t == t2){
                a[s]=a[s-1]-t;
                answer(s,a[s]);
                }
                else
                {
                a[s]=a[s-1]+t;
                answer(s,a[s]);
                }
            }
        }

    //    cout<<"my answer "<<endl;
	//for(int i = 1; i <= N; i++) {
	//	cout<<a[i]<<" ";
	//}


        s++;
    }




    s=pf-2;

    while(s>=1){

        int t=query(s,s+1);
        int t2=query(s,s+2);

        if(abs(a[s+1]-a[s+2])==t2){
            if(a[s+1] > a[s+2]){
                a[s]=a[s+1]-t;
                answer(s,a[s]);
            }
            else{
                a[s]=a[s+1]+t;
                answer(s,a[s]);
            }
        }
        else
        {
            if(a[s+1] > a[s+2]){
                if(a[s+1]-a[s+2] + t == t2){
                a[s]=a[s+1]+t;
                answer(s,a[s]);
                }
                else
                {
                a[s]=a[s+1]-t;
                answer(s,a[s]);
                }
            }
            else{
                if(a[s+2]-a[s+1] + t == t2){
                a[s]=a[s+1]-t;
                answer(s,a[s]);
                }
                else
                {
                a[s]=a[s+1]+t;
                answer(s,a[s]);
                }
            }
        }

    //    cout<<"my answer "<<endl;
//	for(int i = 1; i <= N; i++) {
//		cout<<a[i]<<" ";
//	}


        s--;
    }




  //  cout<<"my answer "<<endl;
	//for(int i = 1; i <= N; i++) {
//		cout<<a[i]<<" ";
	//}

}

Compilation message

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:10:6: warning: unused variable 'value' [-Wunused-variable]
  int value = query(1, N);
      ^~~~~
xylophone.cpp: At global scope:
xylophone.cpp:4:12: warning: 'A' defined but not used [-Wunused-variable]
 static int A[5000];
            ^
xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:34:5: warning: 'pf' may be used uninitialized in this function [-Wmaybe-uninitialized]
     if(pf!=N){
     ^~
# Verdict Execution time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 256 KB Output is correct
4 Correct 5 ms 256 KB Output is correct
5 Correct 7 ms 256 KB Output is correct
6 Correct 7 ms 256 KB Output is correct
7 Correct 7 ms 384 KB Output is correct
8 Correct 7 ms 384 KB Output is correct
9 Correct 6 ms 256 KB Output is correct
10 Correct 6 ms 256 KB Output is correct
11 Correct 6 ms 384 KB Output is correct
12 Correct 8 ms 256 KB Output is correct
13 Correct 6 ms 256 KB Output is correct
14 Correct 6 ms 256 KB Output is correct
15 Correct 7 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 256 KB Output is correct
4 Correct 5 ms 256 KB Output is correct
5 Correct 7 ms 256 KB Output is correct
6 Correct 7 ms 256 KB Output is correct
7 Correct 7 ms 384 KB Output is correct
8 Correct 7 ms 384 KB Output is correct
9 Correct 6 ms 256 KB Output is correct
10 Correct 6 ms 256 KB Output is correct
11 Correct 6 ms 384 KB Output is correct
12 Correct 8 ms 256 KB Output is correct
13 Correct 6 ms 256 KB Output is correct
14 Correct 6 ms 256 KB Output is correct
15 Correct 7 ms 384 KB Output is correct
16 Correct 9 ms 384 KB Output is correct
17 Correct 14 ms 384 KB Output is correct
18 Runtime error 6 ms 384 KB Execution killed with signal 11 (could be triggered by violating memory limits)
19 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 256 KB Output is correct
4 Correct 5 ms 256 KB Output is correct
5 Correct 7 ms 256 KB Output is correct
6 Correct 7 ms 256 KB Output is correct
7 Correct 7 ms 384 KB Output is correct
8 Correct 7 ms 384 KB Output is correct
9 Correct 6 ms 256 KB Output is correct
10 Correct 6 ms 256 KB Output is correct
11 Correct 6 ms 384 KB Output is correct
12 Correct 8 ms 256 KB Output is correct
13 Correct 6 ms 256 KB Output is correct
14 Correct 6 ms 256 KB Output is correct
15 Correct 7 ms 384 KB Output is correct
16 Correct 9 ms 384 KB Output is correct
17 Correct 14 ms 384 KB Output is correct
18 Runtime error 6 ms 384 KB Execution killed with signal 11 (could be triggered by violating memory limits)
19 Halted 0 ms 0 KB -