提出 #30644866


ソースコード 拡げる

#include<bits/stdc++.h>
const double pi = acos(-1.0);
using namespace std;
//using namespace __gnu_pbds;
#define   endl    '\n'
#define   sl(n)     scanf("%lld",&n)
#define   mp      make_pair
#define   pb      push_back
#define   ppb     pop_back
#define   fi      first
#define   se      second
#define   ll      long long
#define   ull     unsigned long long
#define   ld      long double
#define   pii     pair<int, int>
#define   f(i,a,b)  for(ll i = (ll)(a); i < (ll)(b); i++)
#define   rf(i,a,b)   for(ll i = (ll)(a); i > (ll)(b); i--)
#define   ms(a,b)   memset((a),(b),sizeof(a))
#define   abs(x)    ((x<0)?(-(x)):(x))
#define   MAX     200005
#define   inf     LLONG_MAX
#define   ninf    LLONG_MIN
#define   MIN     INT_MIN
#define   yeet    return 0;
#define tihs if(fopen("input.txt","r"))freopen("input.txt", "r", stdin),freopen("output.txt", "w", stdout);

#define fast_io ios_base::sync_with_stdio (false) ; cin.tie(0) ; cout.tie(0) ;
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
// Use cout.flush() for interactive problems.
// Use this for increased stack size: g++ -o a.exe -Wl,--stack=256000000 -O2 source.cpp
inline long long  MAX2(long long  a, long long  b) {return (a) > (b) ? (a) : (b);}
inline long long  MAX3(long long  a, long long  b, long long  c) {return (a) > (b) ? ((a) > (c) ? (a) : (c)) : ((b) > (c) ? (b) : (c));}
inline long long  MIN2(long long  a, long long  b) {return (a) < (b) ? (a) : (b);}
inline long long  MIN3(long long  a, long long b, long long c) {return (a) < (b) ? ((a) < (c) ? (a) : (c)) : ((b) < (c) ? (b) : (c));}

//typedef
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;


const int mod = 998244353;
int64_t extGcd(int64_t a, int64_t b, int64_t& x, int64_t& y) {if (!a) {x = 0; y = 1; return b;} int64_t x1, y1; int64_t d = extGcd(b % a, a, x1, y1); x = y1 - (b / a) * x1; y = x1; return d;}
inline ll addmod(ll a, ll b) {a = a % mod + b % mod; if (a > mod)a %= mod; return a;}
inline ll submod(ll a, ll b) {a = a % mod - b % mod; if (a < 0)a += mod; return a;}
inline ll mulmod(ll a, ll b) {return (a % mod * b % mod) % mod;}

int dx[] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[] = {0, 1, 1, 1, 0, -1, -1, -1};
inline ll exp(ll a, ll b) {if (a == 0)return 0ll; ll r = 1LL; while (b > 0) {if (b & 1) {r = r * (a % mod); r = (r + mod) % mod;} b /= 2; a = (a % mod) * (a % mod); a = (a + mod) % mod;} return (r + mod) % mod;}
ll gcd(ll a, ll b) {if (b == 0)return a; if (a == 0)return b; return gcd(b, a % b);}
uint32 setbits(ll n) {uint32 count = 0; while (n) {n &= (n - 1); count++;} return count; }
ll f[MAX];
ll iv[MAX];
ll C(ll n, ll r) {
	if (n < r)return 0;
	ll ans = (f[n] % mod * iv[r] % mod) % mod;
	ans = (ans % mod * iv[n - r] % mod) % mod;
	return ans % mod;
}
void init() {
	f[0] = 1;
	iv[0] = 1;
	f(i, 1, MAX)f[i] = (i * f[i - 1]) % mod;
	iv[MAX - 1] = exp(f[MAX - 1], mod - 2);


	for (int i = MAX - 2; i >= 0; --i)iv[i] = (iv[i + 1] * (i + 1)) % mod;

}
////****************************************************************************************************************************************************************************************************************////

int main() {
	tihs;
	fast_io;
	int t;
	// cin >> t;
	t = 1;
	while (t--) {

		ll n, k, x;
		cin >> n >> k >> x;
		ll a[n];
		f(i, 0, n)cin >> a[i];
		sort(a, a + n);
		ll rem = k;
		for (int i = n - 1; i >= 0; i--) {
			ll can_use = (a[i] + x - 1) / x;
			if(rem>0){
				if(rem>=can_use){
					if(can_use*x >a[i]){
						a[i]= a[i]-((can_use-1)*x);
						rem-=(can_use-1);
					}else {
						a[i]=MAX2(0,a[i]-can_use*x);
						rem-=(can_use);
					}
				} else{
					a[i]= a[i]-rem*x;
					rem=0;
					break;
				}
			} else break;
		}
		if(rem>0){
			sort(a,a+n);
			for(int i=n-1;i>=0;i--){
				ll can_use = (a[i] + x - 1) / x;
				if(rem>0){
					if(rem>=can_use){
						a[i]=MAX2(0,a[i]-can_use*x);
						rem-=can_use;
					}else{
						a[i]=a[i]-rem*x;
						rem=0;
						break;
					}
				} else break;
			}
		}
		
		ll ans=0;
		f(i,0,n)ans+=a[i];
		cout<<ans<<endl;



	}
	return 0;
}

提出情報

提出日時
問題 C - Coupon
ユーザ pro_30
言語 C++ (GCC 9.2.1)
得点 300
コード長 4292 Byte
結果 AC
実行時間 49 ms
メモリ 5228 KiB

コンパイルエラー

./Main.cpp: In function ‘int main()’:
./Main.cpp:25:47: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
   25 | #define tihs if(fopen("input.txt","r"))freopen("input.txt", "r", stdin),freopen("output.txt", "w", stdout);
      |                                        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
./Main.cpp:75:2: note: in expansion of macro ‘tihs’
   75 |  tihs;
      |  ^~~~
./Main.cpp:25:80: warning: ignoring return value of ‘FILE* freopen(const char*, const char*, FILE*)’, declared with attribute warn_unused_result [-Wunused-result]
   25 | #define tihs if(fopen("input.txt","r"))freopen("input.txt", "r", stdin),freopen("output.txt", "w", stdout);
      |                                                                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
./Main.cpp:75:2: note: in expansion of macro ‘tihs’
   75 |  tihs;
      |  ^~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 31
セット名 テストケース
Sample example0.txt, example1.txt, example2.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, example0.txt, example1.txt, example2.txt
ケース名 結果 実行時間 メモリ
000.txt AC 11 ms 3664 KiB
001.txt AC 37 ms 5192 KiB
002.txt AC 30 ms 5192 KiB
003.txt AC 30 ms 5112 KiB
004.txt AC 39 ms 5060 KiB
005.txt AC 44 ms 5184 KiB
006.txt AC 43 ms 5180 KiB
007.txt AC 43 ms 5044 KiB
008.txt AC 43 ms 5116 KiB
009.txt AC 36 ms 5188 KiB
010.txt AC 19 ms 5228 KiB
011.txt AC 19 ms 5052 KiB
012.txt AC 27 ms 5204 KiB
013.txt AC 24 ms 5220 KiB
014.txt AC 31 ms 4416 KiB
015.txt AC 43 ms 5000 KiB
016.txt AC 19 ms 4012 KiB
017.txt AC 44 ms 5160 KiB
018.txt AC 43 ms 5224 KiB
019.txt AC 45 ms 5216 KiB
020.txt AC 39 ms 5224 KiB
021.txt AC 36 ms 5104 KiB
022.txt AC 39 ms 5120 KiB
023.txt AC 49 ms 5060 KiB
024.txt AC 49 ms 5180 KiB
025.txt AC 49 ms 5164 KiB
026.txt AC 49 ms 5048 KiB
027.txt AC 49 ms 5160 KiB
example0.txt AC 3 ms 3640 KiB
example1.txt AC 3 ms 3620 KiB
example2.txt AC 2 ms 3640 KiB