提出詳細


ソースコード

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int asc(const void *a, const void *b) {
  return *(int *)a - *(int *)b;
}
int main() {
    int c;
    int num;
    int bud;
    int pri;
    int gra;
    int gram[10];
    int price[10];
    int custom[10];
    int max_g = 0;
    int min_p = 99999999;
    int count = 0;
    int count_o = 0;
    int sum_p = 0;
            int sum_g = 0;
    scanf("%d",&c);
    scanf("%d",&num);
    scanf("%d",&bud);
    for(int iii=0;iii<num;iii++){
        scanf("%d",&pri);
        scanf("%d",&gra);
        price[iii] = pri;
        gram[iii] = gra;
        custom[iii]= 0;
    }
    while(1 == 1){
        for(int i = 0;i < num;i++){
            sum_p += custom[i] * price[i];
            sum_g += custom[i] * gram[i];
            printf("%d,%d,%d\n",sum_p,max_g,i);
        }
        if(sum_p <= bud){
                if(sum_g > max_g){
                    max_g = sum_g;
                }
                if(sum_p < min_p){
                    min_p = sum_p;
                }
            }
        count_o++;
        count = count_o;
        if(count == pow(2,num)){
            break;
        }
        for(int i = 0;i < num;i++){
            custom[i] = count % 2;
            count /= 2;
        }
        sum_p = 0;
        sum_g = 0;
        //printf("%d,%d\n",sum_p,max_g);
    }
    printf("%d\n",max_g);
    /*
    for(int iii=1;iii<=c;iii++){
        printf("Case #%d:\n",iii);
        scanf("%d",&num);
        num_o = num;
        for(int ii = 0;ii < 4; ii++){
            size[ii] = num % 10;
            num /= 10;
        }
        qsort(size, 4, sizeof(int),asc);
        n = size[3] * 1000 +  size[2] * 100 + size[1] * 10 + size[0] - size[3] - size[2] * 10 - size[1] * 100 - size[0] * 1000;
        n_o = n;
        if(n != num_o){
            count++;
        }
        while(1 == 1){
            if(n_o == num_o){
                printf("%d\n",count);
                count = 0;
                break;
            }
            for(int ii = 0;ii < 4; ii++){
                size[ii] = n % 10;
                n /= 10;
            }
            qsort(size, 4, sizeof(int),asc);
        //printf("\n");
            //printf("%d,%d\n",size[3] * 1000 +  size[2] * 100 + size[1] * 10 + size[1],size[3] + size[2] * 10 + size[1] * 100 + size[0] * 1000);
            n = size[3] * 1000 +  size[2] * 100 + size[1] * 10 + size[0] - size[3] - size[2] * 10 - size[1] * 100 - size[0] * 1000;
            if(n == n_o){
                printf("%d\n",count);
                count = 0;
                break;
            }
            else{
                n_o = n;
                count++;
            }
        }
    }*/
    return 0;
}

提出情報

提出時間 2019-11-30 18:57:40
問題 I - 質より量 (small)
ユーザ名 bukkorokoroponM
状態 形式違反
正解率 N/A
提出出力結果

テストケース情報

# 状態 詳細情報
正解か誤答の場合のみ表示されます.