Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //10.1////////////////////////////////
- //main.cpp
- #include <stdio.h>
- #include "program.h"
- int main(void)
- {
- int v[5], c;
- scanf("%d", &c);
- switch (c)
- {
- case 1:
- {
- int n;
- scanf("%d", &n);
- for(int i=1; i<=n; i++)
- {
- citire(v, 5);
- afisare(v, 5);
- printf("\n");
- }
- break;
- }
- case 2:
- {
- citire(v, 5);
- printf("%d", rang(v));
- break;
- }
- case 3:
- {
- int n, ans[5], rmax=7, r;
- scanf("%d", &n);
- for(int i=1; i<=n; i++)
- {
- citire(v, 5);
- r=rang(v);
- if(r<rmax)
- {
- cop(ans, v);
- rmax=r;
- }
- if(r==rmax)
- if(comp(ans, v, r))
- cop(ans, v);
- }
- afisare(ans, 5);
- break;
- }
- }
- }
- //program.cpp
- #include <stdio.h>
- #include "program.h"
- void citire(int v[], int l)
- {
- for(int i=0; i<l; i++)
- scanf("%d", &v[i]);
- }
- void afisare(int v[], int l)
- {
- for(int i=0; i<l; i++)
- printf("%d ", v[i]);
- }
- int rang(int v[])
- {
- if(rang1(v, 5))
- return 1;
- else if(rang2(v, 5))
- return 2;
- else if(rang3(v, 5))
- return 3;
- else if(rang4(v, 5))
- return 4;
- else if(rang5(v, 5))
- return 5;
- else if(rang6(v, 5))
- return 6;
- return 0;
- }
- int rang1(int v[], int l)
- {
- for(int i=0; i<2; i++)
- {
- int n=0;
- for(int j=0; j<l; j++)
- if(v[i]==v[j]) n++;
- if(n==4)
- return v[i];
- }
- return 0;
- }
- int rang2(int v[], int l)
- {
- if(rang3(v, l) && rang5(v, l))
- return rang3(v, l);
- return 0;
- }
- int rang3(int v[], int l)
- {
- for(int i=0; i<3; i++)
- {
- int n=0;
- for(int j=0; j<l; j++)
- if(v[i]==v[j]) n++;
- if(n==3)
- return v[i];
- }
- return 0;
- }
- int rang4(int v[], int l)
- {
- int ok1=0, ok2=0;
- for(int i=0; i<4; i++)
- {
- int n=0;
- for(int j=0; j<l; j++)
- if(v[i]==v[j]) n++;
- if(n==2)
- if(ok1==0)
- ok1=v[i];
- else if(ok1!=v[i] && ok2==0)
- ok2=v[i];
- }
- if(ok1*ok2)
- if(ok2>ok1)
- return ok2;
- else
- return ok1;
- return 0;
- }
- int rang5(int v[], int l)
- {
- for(int i=0; i<4; i++)
- {
- int n=0;
- for(int j=0; j<l; j++)
- if(v[i]==v[j]) n++;
- if(n==2)
- return v[i];
- }
- return 0;
- }
- int rang6(int v[], int l)
- {
- int ok=1;
- for(int i=0; i<4; i++)
- {
- int n=0;
- for(int j=0; j<l; j++)
- if(v[i]==v[j]) n++;
- if(n!=1)
- ok=0;
- }
- return ok;
- }
- int comp(int a[], int b[], int r)
- {
- switch(r)
- {
- case 1:
- if(rang1(a, 5)<rang1(b, 5))
- return 1;
- return 0;
- break;
- case 2:
- if(rang2(a, 5)<rang2(b, 5))
- return 1;
- if(rang5(a, 5)<rang5(b,5))
- return 1;
- return 0;
- break;
- case 3:
- if(rang5(a,3)<rang5(b,3))
- return 1;
- return 0;
- break;
- case 4:
- int x[3], y[3];
- x[0]=rang4(a, 5);
- y[0]=rang4(b, 5);
- if(y[0]>x[0])
- return 1;
- for(int i=0; i<4; i++)
- {
- int n=0;
- for(int j=0; j<5; j++)
- if(x[i]==x[j]) n++;
- if(n==2)
- {
- if(x[i]!=x[0])
- {
- x[1]=x[i];
- break;
- }
- }
- else x[2]=x[i];
- }
- for(int i=0; i<4; i++)
- {
- int n=0;
- for(int j=0; j<5; j++)
- if(y[i]==y[j]) n++;
- if(n==2)
- {
- if(y[i]!=y[0])
- {
- y[1]=y[i];
- }
- }
- else y[2]=y[i];
- }
- if(y[1]>x[1])
- return 1;
- if(y[2]>x[2])
- return 1;
- break;
- case 5:
- if(rang5(a, 5)<rang5(b, 5))
- return 1;
- int p[5], q[5];
- cop(p, q);
- cop(p, q);
- sort(p);
- sort(q);
- for(int i=0; i<5; i++)
- if(p[i]>q[i])
- return 0;
- return 1;
- break;
- case 6:
- int v[5], u[5];
- cop(v, a);
- cop(u, b);
- sort(v);
- sort(u);
- for(int i=0; i<5; i++)
- if(v[i]>u[i])
- return 0;
- return 1;
- default:
- break;
- }
- }
- void cop(int a[], int b[])
- {
- for(int i=0; i<5; i++)
- a[i]=b[i];
- }
- void sort(int x[])
- {
- for(int i=0; i<4; i++)
- for(int j=i+1; j<5; j++)
- if(x[i]<x[j])
- {
- int aux=x[i];
- x[i]=x[j];
- x[j]=x[i];
- }
- }
- //program.h
- #ifndef PROGRAM_H
- #define PROGRAM_H
- void citire(int v[], int l);
- void afisare(int v[], int l);
- int rang(int v[]);
- int rang1(int v[], int l);
- int rang2(int v[], int l);
- int rang3(int v[], int l);
- int rang4(int v[], int l);
- int rang5(int v[], int l);
- int rang6(int v[], int l);
- int comp(int a[], int b[], int r);
- void cop(int a[], int b[]);
- void sort(int x[]);
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement