Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("roata.in");
- ofstream fout("roata.out");
- int n,p;
- struct Dublu
- {
- int x,y;
- };
- Dublu t[100005];
- void Citire()
- {
- int i;
- fin>>n;
- fin>>p;
- for(i=1;i<=p;i++)
- {
- fin>>t[i].x;
- t[i].y=i;
- }
- }
- void Cerinta1()
- {
- int i;
- long long s=0;
- for(i=1;i<=p;i++)
- s+=t[i].x;
- fout<<s<<"\n";
- }
- void Cerinta2()
- {
- int i,aux=n,minim,poz;
- while(aux<p)
- {
- minim=1000000;
- for(i=1;i<=n;i++)
- if(minim>t[i].x)
- {
- minim=t[i].x;
- poz=i;
- }
- for(i=1;i<=n;i++)
- t[i].x-=minim;
- if(t[poz].y>0)
- fout<<t[poz].y<<" ";
- aux++;
- swap(t[aux].x,t[poz].x);
- swap(t[aux].y,t[poz].y);
- }
- aux=1;
- while(aux<n)
- {
- minim=1000000;
- for(i=1;i<=n;i++)
- if(minim>t[i].x)
- {
- minim=t[i].x;
- poz=i;
- }
- for(i=1;i<=n;i++)
- t[i].x-=minim;
- if(t[poz].y>0)
- fout<<t[poz].y<<" ";
- aux++;
- t[poz].x=100000000;
- }
- minim=1000000;
- for(i=1;i<=n;i++)
- if(minim>t[i].x)
- {
- minim=t[i].x;
- poz=i;
- }
- fout<<t[poz].y<<"\n";
- fout<<poz<<"\n";
- }
- int main()
- {
- Citire();
- Cerinta1();
- Cerinta2();
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment