Cod sursa(job #2143886)
Utilizator | Data | 26 februarie 2018 12:58:26 | |
---|---|---|---|
Problema | Zeap | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.64 kb |
#include <fstream>
#define nmax 300002
using namespace std;
ifstream fin("zeap.in");
ofstream fout("zeap.out");
int v[nmax];
int main()
{
char c,s;
int stop=0;
while(!fin.eof())
{
c=fin.get();
if(c=='M')
{
c=fin.get();
if(c=='A')
{
int mi=2000000000;
int ma=-2000000000;
for(int i=1;i<=stop;i++)
{
if(v[i]>ma)
ma=v[i];
if(v[i]<mi)
mi=v[i];
}
fout<<ma-mi<<"\n";
}
else
{
int dif=120402324;
for(int i=1;i<=stop;i++)
{
for(int j=i+1;j<=stop;j++)
{
int k=v[i]-v[j];
if(k<0)
k*=-1;
if(k<dif)
dif=k;
}
}
fout<<dif<<"\n";
}
c=fin.get();
c=fin.get();
}
else
{
char ser=c;
c=fin.get();
c=fin.get();
if(fin.eof())
break;
int nr=0;
while(c>='0'&&c<='9')
{
nr=nr*10+c-'0';
c=fin.get();
}
if(ser=='I')
{
v[++stop]=nr;
}
else
{
if(ser=='S')
{
int loc=0;
for(int i=1;i<=stop;i++)
{
if(v[i]==nr)
{
loc=i;
break;
}
}
if(loc)
{
for(int i=stop-1;i>=loc;i--)
v[i]=v[i+1];
stop--;
}
else
fout<<-1<<"\n";
}
else
{
int loc=0;
for(int i=1;i<=stop;i++)
{
if(v[i]==nr)
{
loc=1;
break;
}
}
fout<<loc<<"\n";
}
}
}
s=c;
}
return 0;
}