Submission #1291959


Source Code Expand

#include <iostream>
#include"grader.h"
using namespace std;
typedef long long ll;
 
 
ll memo[51][20000];
ll calc(int nMiss, int nTotal) {
  if(nMiss > nTotal) return calc(nTotal, nTotal);
  if(nMiss == 0) return 1;
  if(nMiss == 1) return nTotal + 1;
  if(nMiss == 2) return nTotal * ll(nTotal+1) / 2;
  ll& res = memo[nMiss][nTotal];
  if(res == 0){
    res = calc(nMiss-1, nTotal-1) + calc(nMiss, nTotal-1);
  }
  return res;
}
 
long long getT(int N, long long M) {

  if(N==1){
    for(int i = 0; i < 123456;i++){
      if(compare(i))return i;
    }
  }
  
  int nTotal = 0;
  while(calc(N, nTotal) < M+1){
    ++nTotal;
  }
//   cerr << nTotal << endl;
  
  ll mini = 0;
  ll maxi = M;
  while(mini < maxi){
//     cerr << mini << " " << maxi << " " << N << " " << nTotal << " ";
    ll X = min(mini + calc(N-1, nTotal-1)-1, maxi);
//     cerr << X << endl;
    if(compare(X)){ // T <= X
      --N;
      maxi = X;
    }else{
      mini = X+1;
    }
    --nTotal;
  }
  return mini;
}

Submission Info

Submission Time
Task C - 提出 (Submission)
User eukaryo
Language IOI-Style C++ (GCC 5.4.1)
Score 100
Code Size 1038 Byte
Status AC
Exec Time 2912 ms
Memory 4700 KB

Compile Error

./grader.cpp: In function ‘int compare(long long int)’:
./grader.cpp:20:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   int result; scanf("%d", &result);
                                   ^
./grader.cpp: In function ‘int main()’:
./grader.cpp:32:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%lld", &inN, &M);
                            ^

Judge Result

Set Name Subtask1 Subtask2 Subtask3
Score / Max Score 25 / 25 25 / 25 50 / 50
Status
AC × 10
AC × 10
AC × 10
Set Name Test Cases
Subtask1 subtask1/1, subtask1/10, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask1/8, subtask1/9
Subtask2 subtask2/1, subtask2/10, subtask2/2, subtask2/3, subtask2/4, subtask2/5, subtask2/6, subtask2/7, subtask2/8, subtask2/9
Subtask3 subtask3/1, subtask3/10, subtask3/2, subtask3/3, subtask3/4, subtask3/5, subtask3/6, subtask3/7, subtask3/8, subtask3/9
Case Name Status Exec Time Memory
subtask1/1 AC 3 ms 604 KB
subtask1/10 AC 798 ms 476 KB
subtask1/2 AC 2 ms 476 KB
subtask1/3 AC 2 ms 476 KB
subtask1/4 AC 2 ms 472 KB
subtask1/5 AC 920 ms 476 KB
subtask1/6 AC 2912 ms 476 KB
subtask1/7 AC 219 ms 472 KB
subtask1/8 AC 2009 ms 472 KB
subtask1/9 AC 1945 ms 472 KB
subtask2/1 AC 2 ms 472 KB
subtask2/10 AC 37 ms 476 KB
subtask2/2 AC 2 ms 476 KB
subtask2/3 AC 22 ms 472 KB
subtask2/4 AC 2 ms 476 KB
subtask2/5 AC 2 ms 476 KB
subtask2/6 AC 17 ms 468 KB
subtask2/7 AC 31 ms 472 KB
subtask2/8 AC 37 ms 472 KB
subtask2/9 AC 2 ms 476 KB
subtask3/1 AC 4 ms 468 KB
subtask3/10 AC 4 ms 4700 KB
subtask3/2 AC 4 ms 4700 KB
subtask3/3 AC 4 ms 4700 KB
subtask3/4 AC 3 ms 2652 KB
subtask3/5 AC 4 ms 4700 KB
subtask3/6 AC 4 ms 596 KB
subtask3/7 AC 4 ms 4572 KB
subtask3/8 AC 4 ms 4696 KB
subtask3/9 AC 4 ms 4696 KB