Submission #333414

#TimeUsernameProblemLanguageResultExecution timeMemory
333414errorgornSterilizing Spray (JOI15_sterilizing)C++17
100 / 100
230 ms9068 KiB
#include <bits/stdc++.h> using namespace std; int n,q,k; int arr[100005]; set<int> s; long long fen[100005]; void update(int i,int j){ while (i<100005){ fen[i]+=j; i+=i&-i; } } long long query(int i){ long long res=0; while (i){ res+=fen[i]; i-=i&-i; } return res; } long long query(int i,int j){ return query(j)-query(i-1); } int main(){ scanf("%d%d%d",&n,&q,&k); for (int x=1;x<=n;x++){ scanf("%d",&arr[x]); if (arr[x]){ update(x,arr[x]); s.insert(x); } } int a,b; while (q--){ scanf("%d",&a); if (a==2){ scanf("%d%d",&a,&b); if (k==1) continue; for (set<int>::iterator it=s.lower_bound(a);it!=s.end() && *it<=b;){ update(*it,arr[*it]/k-arr[*it]); arr[*it]/=k; if (arr[*it]==0){ it++; s.erase(prev(it)); } else{ it++; } } } else if (a==1){ scanf("%d%d",&a,&b); update(a,b-arr[a]); arr[a]=b; s.insert(a); } else{ scanf("%d%d",&a,&b); printf("%lld\n",query(a,b)); } } }

Compilation message (stderr)

sterilizing.cpp: In function 'int main()':
sterilizing.cpp:30:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   30 |     scanf("%d%d%d",&n,&q,&k);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~
sterilizing.cpp:33:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   33 |         scanf("%d",&arr[x]);
      |         ~~~~~^~~~~~~~~~~~~~
sterilizing.cpp:42:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   42 |         scanf("%d",&a);
      |         ~~~~~^~~~~~~~~
sterilizing.cpp:44:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   44 |             scanf("%d%d",&a,&b);
      |             ~~~~~^~~~~~~~~~~~~~
sterilizing.cpp:59:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   59 |             scanf("%d%d",&a,&b);
      |             ~~~~~^~~~~~~~~~~~~~
sterilizing.cpp:65:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   65 |             scanf("%d%d",&a,&b);
      |             ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...