제출 #96658

#제출 시각아이디문제언어결과실행 시간메모리
96658KLPPDEL13 (info1cup18_del13)C++14
40 / 100
19 ms1272 KiB
#include<bits/stdc++.h> using namespace std; typedef long long int lld; int mod(int x){ if(x==0)return 0; if(x%2==1)return 1; return 2; } bool test(vector<int> v){ /*for(int i=0;i<=v.size();i++){ for(int j=0;j<3;j++)DP[i][j]=-1; }DP[0][0]=1; DP[0][1]=0; DP[0][2]=0;*/ bool DP[v.size()+1]; DP[0]=true; for(int i=1;i<=v.size();i++){ DP[i]=false; int res=v[i-1]; res=mod(res); //cout<<res<<"Y"<<endl; for(int j=i-2;j>-1;j--){ res=v[j]-res; if(res>=0){ res=mod(res); //cout<<res<<endl; if(res%2==0){ DP[i]=DP[i]|DP[j]; } if(res==0)j=-1; }else j=-1; } } return DP[v.size()]; } int possible(int n,vector<int> v){ vector<int> diff; for(int i=0;i<v.size()-1;i++){ diff.push_back(v[i+1]-v[i]-1); } /*for(int i=0;i<diff.size();i++){ cout<<diff[i]<<" "; }cout<<endl;*/ int res=0; int sz=0; vector<int> c; for(int i=0;i<diff.size();i++){ if(diff[i]!=0){ /*sz++; res+=diff[i]; res%=2;*/ /*if(!c->empty() && c->top()==1 && diff[i]==1){ c->pop(); if(!test(c))return -1; while(!c->empty())c->pop(); }else */c.push_back(diff[i]); }else{ if(!test(c))return -1; c.clear(); } } if(!test(c))return -1; return 0; } int main(){ int T; cin>>T; while(T--){ int n; cin>>n; int l; cin>>l; vector<int> seq(l+2); seq[0]=0; for(int i=1;i<=l;i++){ cin>>seq[i]; }seq[l+1]=n+1; int sol=possible(n,seq); cout<<sol<<endl; //if(sol==0)cout<<endl; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

del13.cpp: In function 'bool test(std::vector<int>)':
del13.cpp:19:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=1;i<=v.size();i++){
              ~^~~~~~~~~~
del13.cpp: In function 'int possible(int, std::vector<int>)':
del13.cpp:40:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<v.size()-1;i++){
              ~^~~~~~~~~~~
del13.cpp:49:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<diff.size();i++){
              ~^~~~~~~~~~~~
del13.cpp:46:6: warning: unused variable 'res' [-Wunused-variable]
  int res=0;
      ^~~
del13.cpp:47:6: warning: unused variable 'sz' [-Wunused-variable]
  int sz=0;
      ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...