Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- using namespace std;
- void qqsort(long lv, long pr, long long c[1000][3]);
- void qsort(long l, long r, long long m[2000][3]);
- int main()
- {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- long long n,m,kol,max,s;
- long long k[1000][3],l[1000][3],ans[1000][3];
- cin>>n>>m;
- for (int i=0; i<n ; i++)
- for (int j=0; j<3; j++)
- cin>>k[i][j];
- kol=-1;
- for (int i=0; i<m; i++)
- for (int j=0; j<3; j++)
- {
- cin>>l[i][j];
- if(j==2 && l[i][j]>=1)
- {
- kol++;
- ans[kol][0]=l[i][0];
- ans[kol][1]=l[i][1];
- ans[kol][2]=l[i][2];
- }
- }
- s=-1;
- max=k[0][1];
- for (int i=0; i<n; i++)
- {
- if (k[i][1]>=1)
- s++;
- if (k[i][1]>max)
- max=k[i][1];
- }
- qqsort(0,n-1,k);
- for (int i=0; i<n; i++)
- if (k[i][1]>=1 && (k[i][1]==max || k[i][1]>k[s/2][1]))
- {
- kol++;
- ans[kol][0]=k[i][0];
- ans[kol][1]=k[i][1];
- ans[kol][2]=k[i][2];
- }
- qsort(0,kol,ans);
- /*for (int i=0; i<kol+1; i++)
- {
- for (int j=0; j<3; j++)
- cout<<ans[i][j]<<" ";
- cout<<endl;
- }*/
- cout<<kol+1<<endl;
- for (int i=0; i<kol+1; i++)
- cout<<ans[i][0]<<" ";
- return 0;
- }
- void qqsort(long lv, long pr, long long c[1000][3])
- {
- long i=lv;
- long j=pr;
- long d=pr/2;
- long x=c[d][1];
- long y=c[d][2];
- long z=0;
- do
- {
- while (c[i][1]>d ||(c[i][1]==x && c[i][2]>y))
- i++;
- while (c[j][1]<d ||(c[j][1]==x && c[j][2]<y))
- j--;
- if (i<=j)
- {
- z=c[i][0];
- c[i][0]=c[j][0];
- c[j][0]=z;
- z=c[i][1];
- c[i][1]=c[j][1];
- c[j][1]=z;
- z=c[i][2];
- c[i][2]=c[j][2];
- c[j][2]=z;
- i++;
- j--;
- }
- }
- while (i<=j);
- if (lv<j)
- qqsort(lv,j,c);
- if (pr>i)
- qqsort(i,pr,c);
- }
- void qsort (long l, long r, long long m[2000][3])
- {
- long i=l;
- long j=r;
- long d=m[(l+r)/2][0];
- long x=0;
- do
- {
- while (m[i][0]<d)
- i++;
- while (m[j][0]>d)
- j--;
- if (i<=j)
- {
- x=m[i][0];
- m[i][0]=m[j][0];
- m[j][0]=x;
- x=m[i][1];
- m[i][1]=m[j][1];
- m[j][1]=x;
- x=m[i][2];
- m[i][2]=m[j][2];
- m[j][2]=x;
- i++;
- j--;
- }
- }
- while (i<=j);
- if (l<j)
- qsort(l,j,m);
- if (r>i)
- qsort(i,r,m);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement