제출 #1248644

#제출 시각아이디문제언어결과실행 시간메모리
1248644Bui_Quoc_CuongRoom Temperature (JOI24_ho_t1)C++20
35 / 100
1 ms328 KiB
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define FOR(i, a, b) for (int i = a; i <= (int)b; i++)
#define FORD(i, a, b) for (int i = a; i >= (int)b; i--)
#define MASK(i) (1LL << (i))
#define BIT(S, i) (((S) >> (i)) & 1)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define all(x) x.begin(), x.end()
const int N = 5e5 + 5;
int n,k;
int a[N];
void init()
{
	cin>>n>>k;
	FOR(i,1,n) cin>>a[i];
}
namespace sub1
{

	void solve()
	{
		int ans=2e9;
		FOR(t,1,50000)
		{
			int ma=0;
			FOR(i,1,n)
			{
				if(a[i]>=t)
				{	
					int tam=(a[i]-t)/k;
					int val=a[i] -k*tam;
					int curma = abs(t-val);

					tam++;
					val=a[i]-k*tam;
					curma=min(curma,abs(val-t));

					tam--; tam--;
					curma=min(curma,abs(val-t));

					ma=max(ma,curma);
				} else ma=max(ma,abs(t-a[i]));
			}	
			ans=min(ans,ma);
		}
		cout << ans;
	}
}
namespace sub2
{
	int calc(int t)
	{
		int ma=0;
		FOR(i,1,n)
		{
			if(a[i]>=t)
			{	
				int tam=(a[i]-t)/k;
				int val=a[i] -k*tam;
				int curma = abs(t-val);

				tam++;
				val=a[i]-k*tam;
				curma=min(curma,abs(val-t));

				tam--; tam--;
				curma=min(curma,abs(val-t));

				ma=max(ma,curma);
			} else ma=max(ma,abs(t-a[i]));
		}	
		return ma;
	}
	void solve()
	{
		int l=0,r=1e9,ans=2e9;
		FOR(time,1,50)
		{
			int mid1 = l + (r-l)/3;
			int mid2 = r - (r-l)/3;

			int cost1 = calc(mid1);
			int cost2 = calc(mid2);

			ans=min(ans,cost1); ans=min(ans,cost2);

			if(cost1 >= cost2)
			{
				l=mid1;
			} else r=mid2;
		}
		cout << ans;
	}
}
void process()
{
	// sub1::solve();
	sub2::solve();
}
signed main(void) 
{
    ios_base::sync_with_stdio(false); cin.tie(nullptr);   
    #define taskname "kieuoanh"
    if(fopen(taskname".inp", "r")) 
    { 
        freopen(taskname".inp", "r", stdin); 
        freopen(taskname".out", "w", stdout);
    }
    init();
    process();
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int main()':
Main.cpp:110:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  110 |         freopen(taskname".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:111:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  111 |         freopen(taskname".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...