Pagini recente » Cod sursa (job #1735245) | Cod sursa (job #1641693) | Cod sursa (job #3199726) | Cod sursa (job #2132151) | Cod sursa (job #789321)
Cod sursa(job #789321)
using namespace std;
#include<vector>
#include<fstream>
#include<cstdio>
#include<stack>
#include<string>
#define nmax 101
#define mmax 200001
#define lmax 5001
int rez[nmax],n,len[nmax];
char a[nmax][lmax];
vector<stack<int> > track(nmax);
void search(int nr,char oper);
void cdelete(int nr);
ofstream g("search.out");
int main ()
{
int j,m,i,nrop=0;
//vector<vector<char> >a(nmax,vector<char>(lmax));
FILE *f=fopen("search.in","r");
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
{
j=1;
while(fgetc(a[i][j])!=EOF)
j++
}
/*char op;
ifstream f("search.in");
f>>n>>m;
for(i=1;i<=n;i++)
{
track[i].push(0);
j=0;
f>>a[i][j]
while(a[i][j]!=EOL)
j++;
len[i]=j;
}
for(i=1;i<=m;i++)
{
f>>op;
if(op!='-')
{
++nrop;
search(nrop,op);
}
else
{
cdelete(nrop);
--nrop;
}
}
f.close();*/
g.close();
return 0;
}
void cdelete(int nr)
{
int deafis=0;
for(int i=1;i<=n;i++)
if(rez[i]==nr-1||rez[i]==nr)
{ ++deafis;
if(rez[i]==nr)
--rez[i],track[i].pop();
}
g<<deafis<<"\n";
}
void search(int nr,char oper)
{
int de_afis=0,i,poz,j;
bool ok;
for(i=1;i<=n;i++)
if(rez[i]==nr-1)
{
poz=track[i].top();
ok=false;
for(j=poz;j<len[i]&& !ok;j++)
if(a[i][j]==oper)
++de_afis,ok=true;
if(ok)
{
track[i].push(j);
++rez[i];
}
}
g<<de_afis<<"\n";
}