Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- #include <algorithm>
- using namespace std;
- const int roz=10000;
- int rozUzytkow;
- int pl,pp; //przedzial lewy, przedzial prawy
- int tabKol[roz];
- class Wieza{
- public:
- int lewyPrzed;
- int prawyPrzed;
- int wieza;
- int pozycja;
- };
- Wieza *szachownica;
- bool myfunction(Wieza a,Wieza b)
- {
- if(a.prawyPrzed!=b.prawyPrzed)
- return (a.prawyPrzed<b.prawyPrzed);
- return (a.lewyPrzed<b.lewyPrzed);
- }
- bool myfunction2(Wieza a,Wieza b)
- {
- return (a.pozycja<b.pozycja);
- }
- void ustawWieze(){
- for(int i=0;i<rozUzytkow;++i)
- {
- for(int k = szachownica[i].lewyPrzed;k<=szachownica[i].prawyPrzed;++k)
- {
- if(tabKol[k]==-1)
- {
- tabKol[k]=1;
- szachownica[i].wieza=k;
- break;
- }
- else if(k==szachownica[i].prawyPrzed)
- {
- cout<<"NIE"<<endl;
- exit(0);
- }
- }
- }
- }
- int main()
- {
- cin>>rozUzytkow;
- if(rozUzytkow > 10000)
- {
- return 0;
- }
- szachownica=new Wieza[rozUzytkow];
- for(int i=0;i<rozUzytkow;++i)
- {
- szachownica[i].pozycja=i;
- tabKol[i]=-1;
- }
- for(int j=0;j<rozUzytkow;++j)
- {
- cin>>pl>>pp;
- szachownica[j].lewyPrzed=pl;
- szachownica[j].prawyPrzed=pp;
- }
- sort(szachownica,szachownica+rozUzytkow,myfunction);
- ustawWieze();
- sort(szachownica,szachownica+rozUzytkow,myfunction2);
- for(int t=0;t<rozUzytkow;++t){
- cout<<szachownica[t].wieza<<endl;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment