Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.81 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4. //using namespace SexuallyTransmittedDisease;
  5. int licznik=0;
  6. void printer(int x1, int y1, int x2, int y2, bool rotator){
  7.     if(!rotator){
  8.         printf("%d %d %d %d\n", x1+1, y1+1, x2+1, y2+1);
  9.         //std::cout<<x1+1<<" "<<y1+1<<" "<<x2+1<<" "<<y2+1<<"\n";
  10.     }
  11.     else{
  12.         printf("%d %d %d %d\n", y1+1, x1+1, y2+1, x2+1);
  13.         //std::cout<<y1+1<<" "<<x1+1<<" "<<y2+1<<" "<<x2+1<<"\n";
  14.     }
  15.     licznik++;
  16. }
  17.  
  18. int main()
  19. {
  20.     int y,x,k;
  21.     std::cin>>y>>x>>k;
  22.     if((x==1&&y==1)||((x==1||y==1)&&k!=(x*y-1)))
  23.         std::cout<<"NIE\n";
  24.     else if(x==1){
  25.         for(int a=0;a<y-1;a++){
  26.             printer(0, a, 0, a+1, 1);
  27.         }
  28.     }
  29.     else if(y==1){
  30.         for(int a=0;a<x-1;a++){
  31.             printer(0, a, 0, a+1, 0);
  32.         }
  33.     }
  34.     else if(x*y-1>=k&&x+y-2<=k&&!(x%2==0&&y%2==0&&k==(x+y-2))){
  35.         std::cout<<"TAK\n";
  36.         bool rotator=true;
  37.         if(y%2==1&&k==(x+y-2)){
  38.             int temp=x;
  39.             x=y;
  40.             y=temp;
  41.             rotator=false;
  42.         }
  43.  
  44.         int currDistance=x+y-2;
  45.         int turn=-1;
  46.         int xNow=x-1;
  47.         int yNow=y-1;
  48.         while(currDistance<k){
  49.             currDistance++;
  50.             if((xNow==0&&turn==-1)||(xNow==x-2&&turn==1)){
  51.                 turn=-turn;
  52.                 std::cout<<">";
  53.                 printer(xNow,yNow,xNow,yNow-1, rotator);
  54.                 yNow--;
  55.             }
  56.             else{
  57.                     std::cout<<">";
  58.                 printer(xNow, yNow, xNow+turn, yNow, rotator);
  59.                 xNow+=turn;
  60.             }
  61.         }
  62.         int fullRows=(k-(x+y-2))/(x-1);
  63.         int przecznica=(y+1-fullRows)/2-1;
  64.         for(int a=0;a<x-1;a++)
  65.             printer(a,przecznica,a+1,przecznica, rotator);
  66.         for(int a=0;a<x-1;a++){
  67.                 //0 <-  1 ->
  68.             int nastawienie=fullRows%2;
  69.             int length=y-2-fullRows;
  70.             std::cout<<x;
  71.             if(nastawienie==0){
  72.                 if(a<=x-2-((k-(x+y-2))%(x-1))){
  73.                     length=y-1-fullRows;
  74.                 }
  75.                 else{
  76.                     length=y-2-fullRows;
  77.                 }
  78.             }
  79.             else{
  80.                if(a<=((k-(x+y-2))%(x-1)-1)){
  81.                     length=y-2-fullRows;
  82.                 }
  83.                 else{
  84.                     length=y-1-fullRows;
  85.                 }
  86.             }
  87.             std::cout<<":"<<(k-(x+y-2))%(x-1)<<":"<<length;
  88.             for(int b=0;b<length;b++){
  89.                 std::cout<<"  ";
  90.                 printer(a,b,a,b+1, rotator);
  91.             }
  92.  
  93.         }
  94.         for(int a=0;a<y-1;a++){
  95.             printer(x-1,a,x-1,a+1, rotator);
  96.         }
  97.  
  98.     }
  99.     else
  100.         std::cout<<"NIE";
  101.  
  102.         std::cout<<licznik;
  103.     return 0;
  104. }
  105.  
  106. //Mewash OIojoj 2019
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement