Pagini recente » Cod sursa (job #1080772) | Cod sursa (job #2759247) | Cod sursa (job #1706788) | Borderou de evaluare (job #1036132) | Cod sursa (job #249775)
Cod sursa(job #249775)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct plus {long long nr,val;} aux,v[3];
long long x,smax,S,a,b,i,sol,unu,minus,zero;
int cmp(plus a,plus b){
return a.val<b.val;
}
int main(){
FILE *f=fopen("plus.in","r");
fscanf(f,"%lld",&S);
for(i=1;i<=3;i++)
fscanf(f,"%lld %lld",&v[i].nr,&v[i].val);
fclose(f);
sort(v+1,v+4,cmp);
if( v[1].val == -1 && v[2].val == 0 && v[3].val == 1 ){
if(v[3].nr >= S){
sol = 1;
sol+= min( (v[3].nr - S), v[1].nr);
sol*= (v[2].nr + 1);
}
}
if(v[1].val == 1 && v[2].val == 1 && v[3].val == 1){
}
if(v[1].val == -1 && v[2].val == 1 && v[3].val == 1){
if(v[2].nr + v[3].nr >= S){
if(v[3].nr > v[2].nr){
aux=v[3];
v[3]=v[2];
v[2]=aux;
}
smax = v[2].nr + v[3].nr;
x = min(v[2].nr, v[3].nr) + 1;
for(i=S; i<=smax && v[1].nr >= i-S; i++){
sol+= min(i+1, x);
if(i > v[2].nr)
sol-=i - v[2].nr;
}
}
}
if(v[1].val == -1 && v[2].val == -1 && v[3].val == 1){
}
FILE *g=fopen("plus.out","w");
fprintf(g,"%lld",sol);
fclose(g);
return 0;
}