Cod sursa(job #204135)

Utilizator MciprianMMciprianM MciprianM Data 22 august 2008 08:07:42
Problema Order Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 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);
   ct--;   
  }   
  g<<'\n';   
  return 0;   
}