Cod sursa(job #1880468)

Utilizator mihai2003LLL LLL mihai2003 Data 15 februarie 2017 19:35:21
Problema Tablete Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream in("tablete.in");
ofstream out("tablete.out");
int v[1001][1001];
int v2[1001];
bool verify(int n,int k){
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(v[i][j]<v[i][j-1])
                swap(v[i][j],v[i][j-1]),j--;
                //return 0;
        }
    }
    for(int i=1;i<=n;i++)
        if(v[i][k]%2==1){
            printf("cucu\n");
            return 0;
        }
    return 1;
}
int main()
{
    int n,k,nr;
    nr=1;
    in>>n>>k;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){
            v[j][i]=nr;
            nr++;
        }
    for(int i=n;i>0;v2[i]=v[i][k],i--){
        if(v[i][k]%2==0)
            continue ;
        else{
            int a1,a2;
            a1=i-1;
            a2=i+1;
            while(a1>0 && v[a1][k+1]%2==1)
                a1--;
            if(a1!=0)
                swap(v[a1][k+1],v[i][k]);
            else{
                while(a2<n && v[a2][k-1]%2==1)
                    a2++;
                if(a2!=n)
                    swap(v[a2][k-1],v[i][k]);
            }
        }
    }
    verify(n,k);
    for(int i=1;i<=n;i++,out<<endl)
        for(int j=1;j<=n;j++)
            out<<v[i][j]<<" ";
    return 0;
}