제출 #1120204

#제출 시각아이디문제언어결과실행 시간메모리
1120204RSAMSDJakarta Skyscrapers (APIO15_skyscraper)C++17
57 / 100
280 ms96428 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; int t = 0; int const f = 2e3 + 10; long long mod = 1e9 + 7;//998244353; long long dp1[f]; long long dp2[f]; long long par[f]; long long a[f]; long long adj[f][f]; long long mmn =0; pair<long long, long long> edges[f]; long long prefix[f]; vector<pair<long long,long long>>g[f]; vector<pair<int,int>>gg[f]; struct node { long long val = 0; long long lazy = 0; }; struct trpel { long long v, u, bank = 0; }; node segtree[f * 8]; bool B[f]; void redany() { ifstream fin; ofstream fout; fin.open("std.in"); fout.open("std.out"); } void build(int v , int l , int r){ if(r==l){ segtree[v].val = 1e9; return; } int mid = (r+l)/2; build(2*v+1,mid+1,r); build(2*v,l,mid); segtree[v].val = max(segtree[v*2].val,segtree[2*v+1].val); } void upd(int v, int l, int r , int pos, int val){ if(r==l&&r==pos){ segtree[v].val = val; return; } int mid = (r+l)/2; if(pos>mid){ upd(2*v+1,mid+1,r,pos,val); } else{ upd(2*v,l,mid,pos,val); } segtree[v].val = max(segtree[v*2].val,segtree[2*v+1].val); } long long q(int v, int tl , int tr , int l ,int r){ if(tl>r||tr<l)return 0; if(tr<=r&&tl>=l){ return segtree[v].val; } int mid = (tr+tl)/2; return max(q(2*v,tl,mid,l,r),q(2*v+1,mid+1,tr,l,r)); } // void merge(int a , int b, int n, int id){ // if(g[a].size()>g[b].size()){ // swap(a,b); // } // for(int u:g[a]){ // if(u<n&&!B[u]&&par[u+1]==b){ // upd(1,1,n,u,id); // B[u]=1; // } // if(u>1&&!B[u-1]&&par[u-1]==b){ // upd(1,1,n,u-1,id); // B[u-1] =1; // } // g[b].push_back(u); // par[u] = b; // } // } long long powmod(long long a, long long p, long long modd) { long long ans = 1; while (p > 0) { if (p % 2 == 1) { ans *= a; ans %= modd; p--; } if (p == 0)break; a *= a; a %= modd; p /= 2; } return ans; } long long tw = powmod(2, mod - 2, mod); int main() { ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); //cin >> t; t = 1; for (int hhh = 1;hhh <= t;hhh++) { long long n, mx = 0, d = 0, m = 0, k = 0, k2 = 0, r = 0, rr = 0, l = 0, ll = 0, lll = 0, rrr = 0, inf = 1e18; string s1; string s3; char s2; long double dec = 0; bool c = 1; priority_queue<pair<long long, long long>> qq; multiset<long long> mul; queue<long long> pp; map<pair<long long, pair<long long, long long>>, long long> conv; vector<long long> vec; cin >> n >> m; for(int i =0;i<m;i++){ cin>>r>>l; for(int j = r+l;j<n;j+=l){ if(adj[r][j]==0){ adj[r][j] = (j-r)/l; continue; } adj[r][j] = min(adj[r][j],(j-r)/l); } for(int j = r-l;j>-1;j-=l){ if(adj[r][j]==0){ adj[r][j] = (r-j)/l; continue; } adj[r][j] = min(adj[r][j],(r-j)/l); } if(i==0){ k2 = r; } if(i==1)lll = r; } for(int i = 0;i<n;i++){ for(int j =0;j<n;j++){ if(adj[i][j]!=0){ g[i].push_back({j,adj[i][j]}); } } } qq.push({0,k2}); fill(dp2,dp2+n,1e17); dp2[k2] = 0; while(!qq.empty()){ d = qq.top().second; qq.pop(); if(B[d])continue; B[d]=1; for(auto u:g[d]){ if(dp2[u.first]>dp2[d]+u.second){ dp2[u.first] = dp2[d]+u.second; qq.push({-dp2[u.first],u.first}); } } } k = dp2[lll]; if(k!=1e17) cout<<k; else cout<<-1; } }

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

skyscraper.cpp: In function 'int main()':
skyscraper.cpp:104:16: warning: unused variable 'mx' [-Wunused-variable]
  104 |   long long n, mx = 0, d = 0, m = 0, k = 0, k2 = 0, r = 0, rr = 0, l = 0, ll = 0, lll = 0, rrr = 0, inf = 1e18;
      |                ^~
skyscraper.cpp:104:60: warning: unused variable 'rr' [-Wunused-variable]
  104 |   long long n, mx = 0, d = 0, m = 0, k = 0, k2 = 0, r = 0, rr = 0, l = 0, ll = 0, lll = 0, rrr = 0, inf = 1e18;
      |                                                            ^~
skyscraper.cpp:104:75: warning: unused variable 'll' [-Wunused-variable]
  104 |   long long n, mx = 0, d = 0, m = 0, k = 0, k2 = 0, r = 0, rr = 0, l = 0, ll = 0, lll = 0, rrr = 0, inf = 1e18;
      |                                                                           ^~
skyscraper.cpp:104:92: warning: unused variable 'rrr' [-Wunused-variable]
  104 |   long long n, mx = 0, d = 0, m = 0, k = 0, k2 = 0, r = 0, rr = 0, l = 0, ll = 0, lll = 0, rrr = 0, inf = 1e18;
      |                                                                                            ^~~
skyscraper.cpp:104:101: warning: unused variable 'inf' [-Wunused-variable]
  104 |   long long n, mx = 0, d = 0, m = 0, k = 0, k2 = 0, r = 0, rr = 0, l = 0, ll = 0, lll = 0, rrr = 0, inf = 1e18;
      |                                                                                                     ^~~
skyscraper.cpp:107:8: warning: unused variable 's2' [-Wunused-variable]
  107 |   char s2;
      |        ^~
skyscraper.cpp:108:15: warning: unused variable 'dec' [-Wunused-variable]
  108 |   long double dec = 0;
      |               ^~~
skyscraper.cpp:109:8: warning: unused variable 'c' [-Wunused-variable]
  109 |   bool c = 1;
      |        ^
#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...