NC247048. Ginger的大花环
描述
输入描述
第一行给定两个正整数
![]()
表示花的个数和颜色个数。
第二行给定
个正整数
![]()
表示每个颜色的花费。
输出描述
输出最小花费,如果不能染色输出 Ginger666
示例1
输入:
5 4 1 2 3 4
输出:
7
说明:
示例2
输入:
3 1 1
输出:
Ginger666
C++(g++ 7.5.0) 解法, 执行用时: 3ms, 内存消耗: 512K, 提交时间: 2022-12-16 21:36:20
#include<bits/stdc++.h> using namespace std; int main(){ long long n,k;cin>>n>>k; int a[5]; for(int i=0;i<k;i++)cin>>a[i]; if(k<=1){ printf("Ginger666"); return 0; } sort(a,a+k); printf("%lld",(n+2)/3*a[1]+(n-(n+2)/3)*a[0]); return 0; }
C++(clang++ 11.0.1) 解法, 执行用时: 3ms, 内存消耗: 432K, 提交时间: 2023-08-02 18:18:20
#include<bits/stdc++.h> using namespace std; int main() { long long int i,j,k,m,n; int as[5]; cin>>n>>m; for(i=0;i<m;i++)cin>>as[i]; sort(as,as+m); if(m==1)cout<<"Ginger666"; else { cout<<(n+2)/3*as[1]+(n-(n+2)/3)*as[0]; } }
pypy3 解法, 执行用时: 66ms, 内存消耗: 21204K, 提交时间: 2022-12-16 20:48:12
n,m=map(int,input().split()) l=list(map(int,input().split())) if m!=1: x=n%3 n=n//3 a=min(l) l.remove(a) b=min(l) sum=0 sum+=n*2*a+n*b if x==1: sum+=b if x==2: sum+=a+b print(sum) else: print("Ginger666")
Python3 解法, 执行用时: 42ms, 内存消耗: 4540K, 提交时间: 2022-12-16 20:35:30
n,k=map(int,input().split()) s=list(map(int,input().split())) if k==1: print("Ginger666") exit() s.sort() v=(s[0]*2+s[1])*(n//3) if n%3>=2: v+=s[0] if n%3>=1: v+=s[1] print(v)