QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#520221 | #8008. Fortune Wheel | hanmm81 | WA | 0ms | 3612kb | C++14 | 1.8kb | 2024-08-15 11:46:53 | 2024-08-15 11:46:53 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define fi first
#define se second
using namespace std;
#include <bits/stdc++.h>
#define int long long
using namespace std;
struct fen{
int up,down;
fen(int p=0,int q=1){
int t = __gcd(p,q);
p /= t,q /= t;
up = abs(p),down = abs(q);
if (p * q < 0) up = -up;
}
double show(){
return 1.0*up/down;
}
bool operator>(const fen & a){
return (up*a.down > a.up*down);
}
bool operator<(const fen & a){
return (up*a.down < a.up*down);
}
fen operator+(const fen & a){
return fen(a.up*down+up*a.down,down*a.down);
}
fen operator+=(const fen & a){
return *this = fen(a.up*down+up*a.down,down*a.down);
}
fen operator-(const fen & a){
return fen(up*a.down-a.up*down,down*a.down);
}
fen operator-=(const fen & a){
return *this = fen(up*a.down-a.up*down,down*a.down);
}
fen operator*(const fen & a){
return fen(a.up*up,down*a.down);
}
fen operator*=(const fen & a){
return *this = fen(a.up*up,down*a.down);
}
fen operator/(const fen & a){
return fen(a.down*up,a.up*down);
}
fen operator/=(const fen & a){
return *this=*this/a;
}
}ans;
int dist[100005],n,x,k,a[505],cnt,pre[100005];
priority_queue<pii> p;
signed main(){
cin >> n >> x >> k;
for (int i = 1;i < n;i++) dist[i] = 0x3f3f3f3f;
for (int i = 1;i <= k;i++) cin >> a[i];
dist[0] = 0,p.push({0,0});
while (!p.empty()){
pii top = p.top();
p.pop();
for (int i = 1;i <= k;i++){
if (dist[(top.se-a[i]+n)%n] > 1-top.fi) p.push(make_pair(-(dist[(top.se-a[i]+n)%n] = 1-top.fi),(top.se-a[i]+n)%n));
}
}
sort(dist,dist+n),pre[0] = dist[0];
ans.up = dist[x];
for (int i = 0;i < n;i++){
if (i > 0) pre[i] = pre[i-1] + dist[i];
if (ans > fen(pre[i]+n,i+1)) ans = fen(pre[i]+n,i+1);
}
cout << ans.up << " " << ans.down;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3612kb
input:
6 3 2 2 4
output:
8 3
result:
ok 2 number(s): "8 3"
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3540kb
input:
5 4 1 1
output:
8 3
result:
wrong answer 1st numbers differ - expected: '1', found: '8'