제출 #1170584

#제출 시각아이디문제언어결과실행 시간메모리
1170584InvMODRestore Array (RMI19_restore)C++20
0 / 100
185 ms99032 KiB
#include<bits/stdc++.h> using namespace std; #define sz(v) (int)(v).size() struct Edge{ int u,v,w; Edge(int _u = 0, int _v = 0, int _w = 0){ u = _u, v = _v, w = _w; } }; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define name "InvMOD" freopen(name".INP", "r", stdin); freopen(name".OUT", "w", stdout); int n,m; cin >> n >> m; vector<Edge> E; for(int i = 0; i < m; i++){ int l,r,k,value; cin >> l >> r >> k >> value; /* k = 0: pref[r] - pref[l - 1] <= (r - l + 1) - k pref[l - 1] + (r - l + 1) - k >= pref[r] k = 1: pref[r] - pref[l - 1] >= (r - l + 1) - k + 1 pref[r] - (r - l + 1) + k - 1 >= pref[l - 1] */ l++, r++; if(!value){ E.emplace_back(l - 1, r, (r - l + 1) - k); } else{ E.emplace_back(r, l - 1, -(r - l + 1) + k - 1); } } for(int i = 1; i <= n; i++){ E.emplace_back(i - 1, i, 1); E.emplace_back(i, i - 1, 0); } vector<int> ans(n + 1, n + 1); ans[0] = 0; for(int i = 0; i < n; i++){ for(int j = 0; j < sz(E); j++){ int u = E[j].u, v = E[j].v, w = E[j].w; if(ans[u] + w < ans[v]){ ans[v] = ans[u] + w; } } } for(int j = 0; j < sz(E); j++){ int u = E[j].u, v = E[j].v, w = E[j].w; if(ans[u] + w < ans[v]){ cout << "-1\n"; return 0; } } for(int i = 1; i <= n; i++){ cout << ans[i] - ans[i - 1] << " "; } cout << "\n"; return 0; }

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

restore.cpp: In function 'int main()':
restore.cpp:21:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |     freopen(name".INP", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
restore.cpp:22:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |     freopen(name".OUT", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...