제출 #842541

#제출 시각아이디문제언어결과실행 시간메모리
8425418pete8Pilot (NOI19_pilot)C++17
89 / 100
1022 ms126332 KiB
#include<iostream> #include<stack> #include<map> #include<vector> #include<string> #include<unordered_map> #include <queue> #include<cstring> #include<limits.h> #include<cmath> #include<set> #include<algorithm> #include<bitset> //#include "supertrees.h" using namespace std; #define ll long long #define f first #define endl "\n" #define s second #define pii pair<int,int> #define ppii pair<int,pii> #define pb push_back #define all(x) x.begin(),x.end() #define F(n) for(int i=0;i<n;i++) #define lb lower_bound #define fastio ios::sync_with_stdio(false);cin.tie(NULL); using namespace std; #define int long long const int mxn=1e6,mod=998244353,lg=20,root=80,inf=1e9; void setIO(string name) { ios_base::sync_with_stdio(0); cin.tie(0); freopen((name+".in").c_str(),"r",stdin); freopen((name+".out").c_str(),"w",stdout); } int n,m,ct; vector<int>pos[mxn+10]; set<int>cur; int pre[mxn+10]; int32_t main(){ fastio cin>>n>>m; for(int i=1;i<=n;i++){ int a;cin>>a; pos[a].pb(i); } for(int i=1;i<=mxn;i++)pre[i]=pre[i-1]+i; ct=mxn; vector<pii>q(m); vector<int>ans(m); for(int i=0;i<m;i++){ cin>>q[i].f; q[i].s=i; } int sum=pre[n]; cur.insert(0); cur.insert(n+1); sort(q.begin(),q.end()); for(int i=m-1;i>=0;i--){ while(ct>q[i].f){ for(auto j:pos[ct]){ cur.insert(j); auto it=cur.lower_bound(j); auto it2=it; it2++; it--; sum-=pre[((*it2)-(*it)-1)]; it2--; sum+=pre[(*it2)-(*it)-1]; it2++; it++; sum+=pre[(*it2)-(*it)-1]; } ct--; } ans[q[i].s]=sum; } for(auto i:ans)cout<<i<<'\n'; return 0; }

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

pilot.cpp: In function 'void setIO(std::string)':
pilot.cpp:32:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |  freopen((name+".in").c_str(),"r",stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pilot.cpp:33:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |  freopen((name+".out").c_str(),"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...
#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...