QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#185126#6135. BooksCarpe_DiemWA 190ms3836kbC++201.6kb2023-09-21 17:38:552023-09-21 17:38:55

Judging History

This is the latest submission verdict.

  • [2023-09-21 17:38:55]
  • Judged
  • Verdict: WA
  • Time: 190ms
  • Memory: 3836kb
  • [2023-09-21 17:38:55]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
using i128=__int128_t;
#define inf 0x3f3f3f3f
#define quick std::ios::sync_with_stdio(false);std::cin.tie(nullptr);std::cout.tie(nullptr);
typedef long long ll;
typedef pair<ll,ll> PII;
typedef unsigned long long ull;

#define N 100010
#define M 998244353
// 998244353 1000000007 1073741824
// 无序map unordered_map

int n,m;
int a[N];

ll judge(ll num){
    int res=0;
    for(int i=1;i<=n;i++){
        if(num>=a[i]){
            num-=a[i];
            res++;
        }
    }
    return res;
}

void solve(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>a[i];

    if(n==m){
        cout<<"Richman"<<endl;
        return;
    }
    
    ll l=0,r=1e18;
    while(l<=r){
        ll mid=l+r>>1;
        int tt=judge(mid);
        // if(tt==m)break;
        if(tt<m){
            l=mid+1;
        }else{
            r=mid-1;
        }
    }
    // 这个l是最小的
    // cout<<"l ***"<<l<<endl;

    int pos=-1,tnum=inf;
    ll tn=l,tm=0;
    for(int i=1;i<=n;i++){
        if(tn>=a[i]){
            tm++;
            tn-=a[i];
        }else{
            if(a[i]<tnum){
                tnum=a[i];
                pos=i;
            }
        }
    }

    // cout<<"pos ***"<<pos<<endl;

    if(tm>m||tm<m){
        cout<<"Impossible"<<endl;
        return;
    }

    ll ans=l+a[pos]-1;
    cout<<ans<<endl;
}

int main(){
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }

	
	// system("pause");
    return 0;
}

/*

4
4 2
1 2 4 8
4 0
100 99 98 97
2 2
10000 10000
5 3
0 0 0 0 1

*/

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3432kb

input:

4
4 2
1 2 4 8
4 0
100 99 98 97
2 2
10000 10000
5 3
0 0 0 0 1

output:

6
96
Richman
Impossible

result:

ok 4 lines

Test #2:

score: -100
Wrong Answer
time: 190ms
memory: 3836kb

input:

10012
1 0
2
3 2
0 1 0
2 1
0 0
100000 99999
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000...

output:

1
0
Impossible
99999999999999
38
56
Richman
97
438
Richman
24
50
98
30
15
Richman
Richman
Richman
36
Richman
Richman
450
24
44
349
34
513
28
33
238
Richman
Richman
Richman
66
274
2
160
76
47
91
71
3
Richman
125
32
15
Richman
21
26
Richman
7
Richman
247
277
Richman
Richman
60
312
62
257
Richman
67
Ri...

result:

wrong answer 5th lines differ - expected: '192', found: '38'