Pagini recente » Cod sursa (job #1896197) | Cod sursa (job #1679347) | Cod sursa (job #3183400) | Clasament oni_10_2 | Cod sursa (job #935244)
Cod sursa(job #935244)
/// Craciun Catalin (c)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
long A[15010];
int n;
long m;
long long B[15010];
void initializare(){
long i;
for (i=1;i<=n;i++)
if (i==1){
B[i]=A[i];
}
else{
B[i]=B[i-1]+A[i];
}
}
void achitare(){
long s,i;
int d;
f>>d>>s; /// Ziua si suma achitata
for (i=d;i<=n;i++){
if (B[i]>=s)
B[i]-=s;
else
B[i]=0;
}
}
void interogare(){
int pi,pf,i;
long long t=0;
f>>pi>>pf;
g<<B[pf]-B[pi-1]<<"\n";
}
void verificare(bool code){
if (code==0){
achitare();
}
else if (code==1){
interogare();
}
}
int main(){
long i;
bool code;
f>>n>>m;
for (i=1;i<=n;i++){
f>>A[i];
}
initializare();
for (i=1;i<=m;i++){
f>>code;
verificare(code);
}
f.close();
g.close();
return 0;
}