目錄

牛客暑假多校第五场

目錄

题目链接 密码:l9sn
终于不爆零了,但是还是wa了无数次,有时候代码感觉都差不多

G-max

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
//wa
#include<bits/stdc++.h>
using namespace std;

int main(){
    int n,c;//好像不会爆int吧,头晕
    cin>>c>>n;
    int t=n/c;
    if(t<1) cout<<"-1\n";//
    else if(t==1) cout<<c*c<<endl;
    else cout<<(t*c)*((t-1)*c)<<endl;
  return 0;
}*/

//AC
#include<bits/stdc++.h>
using namespace std;

int main(){
    long long n,c;
    cin>>c>>n;
    long long t=n/c;
    if(t<1) cout<<-1<<endl;
    else if(t==1) cout<<c*c<<endl;
    else cout<<(t*c)*((t-1)*c)<<endl;
  return 0;
}

J-plan

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*枚举所有情况
全买双人n%2  0 or 1//剩1个人的时候,可以多开一间房或者退一间2人房开一间3人房
全买3人n%3  0 or 1 or 2
再比较大小
*/
#include<bits/stdc++.h>
#define INF 1<<20
using namespace std;
typedef long long ll;

ll min(ll a,ll b){
    return a<b?a:b;
}

int main(){
    ll n,p2,p3,sum,sum1;
    while(cin>>n>>p2>>p3){
        if(n%2==0)
            sum=p2*(n/2);
        else sum=p2*(n/2)+min(min(p2,p3),p3-p2);//退二买三;

        if(n%3==0)
            sum1=p3*(n/3);
        else if(n%3==1) sum1=p3*(n/3)+min(min(p2,p3),2*p2-p3);//退3买2*2
        else if(n%3==2) sum1=p3*(n/3)+min(p3,p2);//退3买3*2
        cout<<min(sum1,sum)<<endl;
    }
  return 0;
}