[NOIP 2012] 킹덤 게임 고정밀+욕심
5952 단어 NOIP
코드
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxn = 1000 + 2, Len = 4000 + 1, base = 10000;
struct Holder{
int l,r;
}p[100000];
int cmp(Holder a,Holder b){
return a.l*a.rstruct Bign{
int len;
int v[Len];
Bign(int r = 0) {for (len = 0; r > 0; r /= base) v[len++] = r % base;}
Bign &operator = (const Bign &a){
memcpy(this, &a, sizeof(int) * (a.len + 1));
return *this;
}
bool operator < (const Bign &a){
if (len != a.len) return len < a.len;
for (int i = len - 1; i >= 0; i--)
if (v[i] != a.v[i]) return v[i] < a.v[i];
return false;
}
}temp,res,ans;
ostream &operator << (ostream &out, const Bign &a){
printf("%d", a.len == 0 ? 0 : a.v[a.len - 1]);
for (int i = a.len - 2; i >= 0; i--) printf("%04d", a.v[i]);
return out;
}
Bign operator * (const Bign &a, const int &b){
Bign ans = 0;
if (!a.len || !b) return ans;
int carry = 0, i;
for (i = 0; i < a.len || carry; i++){
if (i < a.len) carry += a.v[i] * b;
ans.v[i] = carry % base;
carry /= base;
}
ans.len = i;
return ans;
}
Bign operator / (const Bign &a, const int &b){
Bign ans = a;
int carry = 0;
for (int i = ans.len - 1; i >= 0; i--){
ans.v[i] += carry * base;
carry = ans.v[i] % b;
ans.v[i] /= b;
}
while (!ans.v[ans.len - 1] && ans.len) ans.len--;
return ans;
}
int n;
int main() {
scanf("%d",&n);
scanf("%d%d",&p[0].l,&p[0].r);
for(int i=1;i<=n;i++){
scanf("%d%d",&p[i].l,&p[i].r);
}
sort(p+1,p+1+n,cmp);
res=p[0].l;
for(int i=1;i<=n;i++){
temp=res/p[i].r;
if(anscout<return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[NOIP2017 A팀 합숙훈련 향상 10.22] 우정.Flowey는 우정의 알갱이를 통해 LOVE를 전파할 수 있는 작은 꽃이다. 우정의 알갱이는 두 가지로 나뉘는데, 둥근 알갱이와 구겨진 알갱이가 순서대로 배열되어 길이가 2m의 서열을 이루고 있다. 우정의 알갱이에 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.