Pagini recente » Cod sursa (job #2727580) | Cod sursa (job #690723) | Statistici Razvan Cotruta (razviyagalo) | Cod sursa (job #2888721) | Cod sursa (job #2329241)
#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin("eq4.in");
ofstream fout("eq4.out");
long long cerinta,termen,p=1,k,i,j;
long long sol[1002500];
long long nr=0;
long long v[6];
char c[100014];
int cautbin(int x){
int st=1,dr=k;
while(st<=dr){
int mid=(st+dr)/2;
if(x>sol[mid])
st=mid+1;
else
dr=mid-1;
}
dr++;
int nr=0;
for(int i=dr;sol[i]==x&&i<=k;i++)
nr++;
return nr;
}
int main()
{
fin>>cerinta;
fin>>c;
termen=0;
for(int i=strlen(c)-1;i>=0;i--){
if(c[i]=='x')
termen=1;
else
if(c[i]=='y')
termen=2;
else
if(c[i]=='z')
termen=3;
else
if(c[i]=='t')
termen=4;
else
if(c[i]=='+'){
if(nr==0&&termen>0&& (c[i+1]=='x'||c[i+1]=='y'||c[i+1]=='z'||c[i+1]=='t'))
nr=1;
v[termen] +=nr;
termen=0;
nr=0;
p=1;
}
else
if(c[i]=='-'){
if(nr==0&&termen>0&& (c[i+1]=='x'||c[i+1]=='y'||c[i+1]=='z'||c[i+1]=='t'))
nr=1;
v[termen] -=nr;
termen=0;
nr=0;
p=1;
}
else{
nr += (c[i]-48)*p;
p *=10;
}
}
if(cerinta==1){
fout<<v[0]+v[1]+v[2]+v[3]+v[4];
return 0;
}
long long a,b,e;
fin>>a>>b>>e;
e =e-v[0];
// x = v[1]
// y= v[2]
// z= v[3]
// t= v[4];
for(i=a;i<=b;i++)
for(j=a;j<=b;j++){
sol[++k]=i*v[1]+j*v[2];
}
sort(sol+1,sol+k+1);
sol[k+1]=9223370368547758078;
k++;
// for(i=1;i<=k;i++)
// cout<<sol[i]<<" ";
// cout<<"\n";
for(i=a;i<=b;i++)
for(j=a;j<=b;j++){
nr+=cautbin(e-(i*v[3]+j*v[4]));
//cout<<e-(i*v[3]+j*v[4])<<" "<<cautbin(e-(i*v[3]+j*v[4]))<<endl;
}
fout<<nr;
//cout<<cautbin(16);
}