제출 #1043659

#제출 시각아이디문제언어결과실행 시간메모리
1043659NickpapadakFountain (eJOI20_fountain)C++14
0 / 100
25 ms1644 KiB
#include<bits/stdc++.h> using namespace std; #define X first #define Y second const unsigned int MAXN = 1e+5 +10; const unsigned int INF = 1+9 + 10; pair<int, int> T[MAXN];// (diam, capacity) int sf[MAXN]; int N, Q; int solvesort(int i, int val){ int ans = val - sf[i]; return max(0, ans); } int ans[MAXN]; int nb[MAXN]; void solveqn(){ // int sol = 0; stack<int> stk; T[N+1] ={INF, 0}; for(int i= 1;i<=N;++i) nb[i] = N+1; for(int i =1;i<=N+1;++i){ if(!(stk.empty())&&T[stk.top()].X > T[i].X){ stk.push(i); }else{ while(!(stk.empty()) && T[i].X >= T[stk.top()].X){ nb[stk.top()] =i; stk.pop(); }stk.push(i); } } ans[N+1] = 0; for(int i = N; i >= 1; --i){ ans[i] = ans[nb[i]] + T[i].Y; } while(Q--){ int a, b; scanf("%d%d", &a,&b); b-=T[a].Y; while(b > 0 && a != N+1){ // T[nb[a]].Y a = nb[a]; b -= T[a].Y; // printf("%d ", b); } if(a == N+1) printf("0\n"); else printf("%d\n", a); } // return max(0, sol); } int main(){ scanf("%d%d",&N,&Q); for(int i = 1;i <=N; ++i){ scanf("%d%d",&T[i].X, &T[i].Y); } if(is_sorted(T+1,T+N+1)){ for(int i = N;i >=1; --i){ sf[i] = sf[i+1] + T[i].Y; } while(Q--){ int a, b; scanf("%d%d",&a,&b); printf("%d\n", solvesort(a,b)); } }else{ solveqn(); } }

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

fountain.cpp: In function 'void solveqn()':
fountain.cpp:37:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |         scanf("%d%d", &a,&b);
      |         ~~~~~^~~~~~~~~~~~~~~
fountain.cpp: In function 'int main()':
fountain.cpp:51:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |     scanf("%d%d",&N,&Q);
      |     ~~~~~^~~~~~~~~~~~~~
fountain.cpp:53:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   53 |         scanf("%d%d",&T[i].X, &T[i].Y);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
fountain.cpp:61:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   61 |             scanf("%d%d",&a,&b);
      |             ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...