제출 #828581

#제출 시각아이디문제언어결과실행 시간메모리
828581Amylopectin송신탑 (IOI22_towers)C++17
0 / 100
583 ms50208 KiB
#include "towers.h" #include <stdio.h> #include <vector> #include <iostream> #include <algorithm> using namespace std; const int mxn = 2e6 + 10,mxi = 2e9 + 10; int n,he[mxn] = {},of,qsu[mxn] = {},sem[mxn] = {},fro[mxn] = {},bac[mxn] = {}; vector<int> se[mxn] = {}; int bui(int cl,int cr,int no) { if(cl == cr) { sem[no] = he[cl]; return 0; } int mid = (cl+cr) / 2; bui(cl,mid,no*2); bui(mid+1,cr,no*2+1); sem[no] = min(sem[no*2],sem[no*2+1]); return 0; } int fii(int cl,int cr,int no,int tl,int tr) { if(cl > tr || cr < tl) { return mxi; } if(cl >= tl && cr <= tr) { return sem[no]; } int mid = (cl+cr) / 2; return min(fii(cl,mid,no*2,tl,tr),fii(mid+1,cr,no*2+1,tl,tr)); } void init(int N, std::vector<int> H) { int i,j,cn,cm,fn,fm; n = N; for(i=0; i<n; i++) { he[i] = H[i]; } of = 0; bui(0,n-1,1); return ; } int max_towers(int cl, int cr, int d) { int i,j,cn,cm,fn,fm,cmi = -1,cma,beh = mxi,cou = 0,be,cva; if(of== 0) { for(i=0; i<n; i++) { if(cmi == -1) { cmi = he[i]; } else { cmi = min(cmi,he[i]); } if(he[i] - cmi >= d && beh - cmi >= d) { cou ++; beh = he[i]; cmi = -1; qsu[i] ++; } else { if(he[i] > beh) { beh = he[i]; cmi = -1; } } } if(cmi != -1 && beh - cmi >= d) { cou ++; } be = -1; for(i=0; i<n; i++) { if(qsu[i] == 1) { be = i; bac[i] = i; } else { bac[i] = be; } } be = -1; for(i=n-1; i>=0; i--) { if(qsu[i] == 1) { be = i; fro[i] = i; } else { fro[i] = be; } } for(i=1; i<n; i++) { qsu[i] += qsu[i-1]; } of = 1; } cva = qsu[cr]; if(cl > 0) { cva -= qsu[cl-1]; } if(cva == 0) { return 1; } if(he[fro[cl]] - fii(0,n-1,1,cl,fro[cl]) >= d) { cva ++; } if(he[bac[cr]] - fii(0,n-1,1,bac[cr],cr) >= d) { cva ++; } cva --; if(cva == 0) { return 1; } return cva; }

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

towers.cpp: In function 'void init(int, std::vector<int>)':
towers.cpp:38:9: warning: unused variable 'j' [-Wunused-variable]
   38 |   int i,j,cn,cm,fn,fm;
      |         ^
towers.cpp:38:11: warning: unused variable 'cn' [-Wunused-variable]
   38 |   int i,j,cn,cm,fn,fm;
      |           ^~
towers.cpp:38:14: warning: unused variable 'cm' [-Wunused-variable]
   38 |   int i,j,cn,cm,fn,fm;
      |              ^~
towers.cpp:38:17: warning: unused variable 'fn' [-Wunused-variable]
   38 |   int i,j,cn,cm,fn,fm;
      |                 ^~
towers.cpp:38:20: warning: unused variable 'fm' [-Wunused-variable]
   38 |   int i,j,cn,cm,fn,fm;
      |                    ^~
towers.cpp: In function 'int max_towers(int, int, int)':
towers.cpp:51:9: warning: unused variable 'j' [-Wunused-variable]
   51 |   int i,j,cn,cm,fn,fm,cmi = -1,cma,beh = mxi,cou = 0,be,cva;
      |         ^
towers.cpp:51:11: warning: unused variable 'cn' [-Wunused-variable]
   51 |   int i,j,cn,cm,fn,fm,cmi = -1,cma,beh = mxi,cou = 0,be,cva;
      |           ^~
towers.cpp:51:14: warning: unused variable 'cm' [-Wunused-variable]
   51 |   int i,j,cn,cm,fn,fm,cmi = -1,cma,beh = mxi,cou = 0,be,cva;
      |              ^~
towers.cpp:51:17: warning: unused variable 'fn' [-Wunused-variable]
   51 |   int i,j,cn,cm,fn,fm,cmi = -1,cma,beh = mxi,cou = 0,be,cva;
      |                 ^~
towers.cpp:51:20: warning: unused variable 'fm' [-Wunused-variable]
   51 |   int i,j,cn,cm,fn,fm,cmi = -1,cma,beh = mxi,cou = 0,be,cva;
      |                    ^~
towers.cpp:51:32: warning: unused variable 'cma' [-Wunused-variable]
   51 |   int i,j,cn,cm,fn,fm,cmi = -1,cma,beh = mxi,cou = 0,be,cva;
      |                                ^~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...