ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1005. Куча камней

Why my program WA ????why why ??
Послано Михаил 16 окт 2016 01:12


#include "stdafx.h"
#include <iostream>

//using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    int k1=0,k2=0,n,max,nmax,sum=0,pol=0,k11=0,minraz=10000000;
    std::cin>>n;
    int w[20][3];
    int graf[20][20];
    for(int i=0;i<n;i++){
    std::cin>>w[i][0];
    w[i][2]=w[i][0];
    sum=sum+w[i][0];
    }
    pol=sum/2;


    for(int i=0;i<n;i++){
for(int i1=0;i1<n;i1++){
graf[i][i1]=0;
}}

    for(int i=0;i<n;i++){
    max=0;
    nmax=-1;

for(int i1=0;i1<n;i1++){
    if(max<w[i1][0]){max=w[i1][0];nmax=i1;}
        }
w[nmax][0]=0;
for(int i1=0;i1<i+1;i1++){
    if(i1==0){if(i==0){graf[i][i1]=max;}else{graf[i][i1]=graf[i-1][i1];}}
    else{
        graf[i][i1]=graf[i-1][i1-1]+max;
    }
}
    }

    for(int i=0;i<n;i++){
for(int i1=0;i1<n;i1++){
    if((minraz>abs((sum-graf[i][i1])-graf[i][i1])&&(graf[i][i1]!=0))){minraz=abs((sum-graf[i][i1])-graf[i][i1]);}

}}








    for(int i=0;i<n;i++){
    max=0;
    nmax=-1;

for(int i1=0;i1<n;i1++){
    if(max<w[i1][2]){max=w[i1][2];nmax=i1;}
        }

if(k1<k2){k1=k1+max;w[nmax][2]=0;w[nmax][1]=1;}else{k2=k2+max;w[nmax][2]=0;w[nmax][1]=2;
    }
if(k11+max<=pol){k11=max+k11;}


    }




    if(abs(k2-k1)<abs(k11-(sum-k11))){
        if(abs(k2-k1)<minraz){
            std::cout<<abs(k2-k1);}else{std::cout<<minraz;}}
    else{
        if(abs(k11-(sum-k11))<minraz){
std::cout<<abs(k11-(sum-k11));}else{std::cout<<minraz;}
    }
system("pause");
}