Cod sursa(job #204134)

Utilizator MciprianMMciprianM MciprianM Data 22 august 2008 07:58:55
Problema Order Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<fstream>
using namespace std;
struct nod{
  int inf;
  nod *urm;
};
nod* v, *u; 
void sterge(nod*& p){
  nod*q;
  q=p;
  if(v!=u){
  if(v==p) { v=v->urm;u->urm=v;}
  else if(u==p) { p=v;  while(p->urm!=u)  p=p->urm;  u=p;u->urm=v;}
  else {p=v;while(p->urm!=q)  p=p->urm;  p->urm=q->urm;}
   
  }
  p=q->urm;
  delete q;
}
int main(){
  int n, i,ct, k;
  ifstream f("order.in");
  ofstream g("order.out");
  f>>n;
  f.close();
  ct=n;
  v=new nod;
  v->inf=1;
  v->urm=v;
  u=v;
  nod* p;
  for(i=2;i<=n;++i){
    p=new nod;
    p->inf=i;
    p->urm=v;
    u->urm=p;
    u=p;
  }
  p=v->urm;
  for(i=1;i<=n;i++){
   k=i-1;k=k%ct;
   while(k--)  p=p->urm;
   g<<p->inf<<' ';
    sterge(p);
  }
  g<<'\n';
  return 0;
}