제출 #735135

#제출 시각아이디문제언어결과실행 시간메모리
735135ReLiceBali Sculptures (APIO15_sculpture)C++14
71 / 100
1082 ms21068 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define pb push_back #define endl "\n" #define fr first #define sc second #define sz size() #define bc back() using namespace std; /* #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; #define ordered_set tree<ll, null_type,less_equal<ll>, rb_tree_tag,tree_order_statistics_node_update> void fre(string s){freopen((s+".in").c_str(),"r",stdin);freopen((s+".out").c_str(),"w",stdout);}*/ void start(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); } const ll inf=1e9+7; const ll mod=1e9+7; const ll N=2e3+7; ll pref[N],n,l,r; vector<vector<ll> > g(N); ll vis[N]; ll d[N]; bool check(ll val){ set <pair<ll,ll>> q; q.insert({0,1}); for(ll i=1;i<=n+1;i++) d[i]=inf; d[1]=0; while(!q.empty()){ ll x=q.begin()->sc; q.erase(q.begin()); for(auto i : g[x]){ if((pref[i]-pref[x-1]) & (1ll<<val)) continue; if(d[x]+1<d[i+1]){ d[i+1]=d[x]+1; q.insert({d[i+1],i+1}); } } } ll l1=d[n+1],r1; q.insert({0,1}); for(ll i=1;i<=n+1;i++) d[i]=inf; d[1]=0; while(!q.empty()){ ll x=q.begin()->sc; q.erase(q.begin()); for(auto i : g[x]){ if((pref[i]-pref[x-1]) & (1ll<<val)) continue; if(d[x]-1<d[i+1]){ d[i+1]=d[x]-1; q.insert({d[i+1],i+1}); } } } r1=-d[n+1]; if(r1<l || l1>r || l1==inf || r1==inf) return false; else return true; } void ers(ll val){ for(ll i=1;i<=n;i++){ for(ll j=0;j<g[i].sz;j++){ if((pref[g[i][j]]-pref[i-1]) & (1ll<<val)){ swap(g[i][j],g[i].bc); g[i].pop_back(); j--; } } } } void solve(){ ll i,j,q,sum=0,ans=0,b,mx=-1,c=1,m,t; ll k; cin>>n>>l>>r; vector <ll> v; v.pb(0); for(i=0;i<n;i++){ cin>>b; v.pb(b); } for(i=1;i<=n;i++){ pref[i]=pref[i-1]+v[i]; } for(i=1;i<=n;i++){ for(j=i;j<=n;j++){ g[i].pb(j); } } for(i=45;i>=0;i--){ if(check(i)){ ers(i); } else{ ans+=(1ll<<i); } } cout<<ans<<endl; } signed main(){ //start(); //fre(""); ll t=1; //cin>>t; while(t--) solve(); } /* 6 1 3 8 1 2 1 5 4 */

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

sculpture.cpp: In function 'void ers(long long int)':
sculpture.cpp:66:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   66 |         for(ll j=0;j<g[i].sz;j++){
      |                     ^
sculpture.cpp: In function 'void solve()':
sculpture.cpp:76:12: warning: unused variable 'q' [-Wunused-variable]
   76 |     ll i,j,q,sum=0,ans=0,b,mx=-1,c=1,m,t;
      |            ^
sculpture.cpp:76:14: warning: unused variable 'sum' [-Wunused-variable]
   76 |     ll i,j,q,sum=0,ans=0,b,mx=-1,c=1,m,t;
      |              ^~~
sculpture.cpp:76:28: warning: unused variable 'mx' [-Wunused-variable]
   76 |     ll i,j,q,sum=0,ans=0,b,mx=-1,c=1,m,t;
      |                            ^~
sculpture.cpp:76:34: warning: unused variable 'c' [-Wunused-variable]
   76 |     ll i,j,q,sum=0,ans=0,b,mx=-1,c=1,m,t;
      |                                  ^
sculpture.cpp:76:38: warning: unused variable 'm' [-Wunused-variable]
   76 |     ll i,j,q,sum=0,ans=0,b,mx=-1,c=1,m,t;
      |                                      ^
sculpture.cpp:76:40: warning: unused variable 't' [-Wunused-variable]
   76 |     ll i,j,q,sum=0,ans=0,b,mx=-1,c=1,m,t;
      |                                        ^
sculpture.cpp:77:8: warning: unused variable 'k' [-Wunused-variable]
   77 |     ll k;
      |        ^
#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...