Pagini recente » Cod sursa (job #132617) | Cod sursa (job #2078153) | Cod sursa (job #1294214) | Cod sursa (job #1151331) | Cod sursa (job #455898)
Cod sursa(job #455898)
#include<vector>
#include<fstream.h>
#include<algorithm>
using namespace std;
vector<long> s;
long n;
int next(int poz)
{
while(s[poz]==s[poz+1] && poz<n-1)
poz++;
poz++;
if(s[poz]==s[poz-1])
return -1;
return poz;
} // se retine poz intr-un aux apoi verifcam daca e la sf sau merge next
int main()
{
long i, j, v[5001], poz=0, si, p, da;
ifstream f("secv.in");
f>>n;
for(i=1; i<=n; ++i)
{
f>>v[i];
s.push_back(v[i]);
}
sort(s.begin(), s.end());
for(j=1; j<=n; ++j)
if(v[j]==s[poz])
{
si=j;
p=j;
break;
}
ofstream g("secv.out");
while(1)
{
da=1;
poz=next(poz);
if(poz==-1)
{
g<<p-si+1;
break;
}
for(i=p+1; i<=n && da; ++i)
if(v[i]==s[poz])
{
da=1;
p=i;
}
if(da==0)
{
g<<-1;
break;
}
}
g.close();
return 0;
}