Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // problema nkgraf (2020 Iasi) 80 pct.
- #include <fstream>
- #include <algorithm>
- #define NMAX 1005
- using namespace std;
- ifstream cin("nkgraf.in");
- ofstream cout("nkgraf.out");
- struct muchie
- {
- int x,y;
- } m[1005];
- int n,k,p,cond,nr,help;
- int x[NMAX];
- int nrmaree[800];
- inline void Inmultire_nr_mare(int *a,int b)
- {
- int t=0;
- for(int i=1; i<=a[0]; i++,t/=10)
- {
- t+=a[i]*b;
- a[i]=t%10;
- }
- for(; t; t/=10)
- a[++a[0]]=t%10;
- }
- inline void Impartire_nr_mare(int *a,int b)
- {
- int i,r=0;
- for(int i=a[0]; i>=1; i--,r%=b)
- {
- r=10*r+a[i];
- a[i]=r/b;
- }
- for(; a[a[0]]==0 && a[0]>1;)
- a[0]--;
- }
- void combinare(int n,int k)
- {
- nrmaree[++nrmaree[0]]=1;
- int maxim=max(k,n-k);
- int minim=min(k,n-k);
- for(int i=maxim+1; i<=n; i++)
- Inmultire_nr_mare(nrmaree,i);
- for(int i=2; i<=minim; i++)
- Impartire_nr_mare(nrmaree,i);
- for(int i=nrmaree[0]; i>0; i--)
- cout<<nrmaree[i];
- }
- bool cmp(muchie a,muchie b)
- {
- if(a.x==b.x)
- return a.y<b.y;
- return a.x<b.x;
- }
- inline void afisare(int k)
- {
- for(int i=1; i<=k; i++)
- cout<<m[x[i]].x<<" "<<m[x[i]].y<<endl;
- }
- inline void find_muchii(int n)
- {
- for(int i=1; i<n; i++)
- for(int j=i+1; j<=n; j++)
- {
- m[++nr].x=i;
- m[nr].y=j;
- m[++nr].x=j;
- m[nr].y=i;
- }
- }
- inline void bkt_comb2(int cnt,int k)
- {
- if(cnt<=k)
- {
- for(int i=x[cnt-1]+1; i<=nr; i++)
- {
- x[cnt]=i;
- if(cnt==k)
- {
- help++;
- if(help==p)
- {
- afisare(k);
- return;
- }
- }
- else
- bkt_comb2(cnt+1,k);
- }
- }
- }
- inline void read()
- {
- cin>>cond>>n>>k>>p;
- }
- inline void solve1(int n,int k)
- {
- combinare(n*(n-1),k);
- }
- inline void solve2(int n,int k,int p)
- {
- find_muchii(n);
- sort(m+1,m+nr+1,cmp);
- bkt_comb2(1,k);
- }
- int main()
- {
- read();
- if(cond==1)
- solve1(n,k);
- else
- {
- solve2(n,k,p);
- /*for(int i=1;i<=nr;i++)
- cout<<m[i].x<<" "<<m[i].y<<endl;*/
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement