From a0a23f75712ab519d0f3a3631784da929113a124 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Wed, 7 Aug 2024 09:42:18 +0800 Subject: [PATCH] update --- .gitignore | 1 + day5/hard/hard.cpp | 75 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 day5/hard/hard.cpp diff --git a/.gitignore b/.gitignore index 8b92180..9c0d336 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,4 @@ test.txt day4/U76034/chat day4/U287193/chat day4/U461920/fixed +day5/hard/hard diff --git a/day5/hard/hard.cpp b/day5/hard/hard.cpp new file mode 100644 index 0000000..ff19643 --- /dev/null +++ b/day5/hard/hard.cpp @@ -0,0 +1,75 @@ +//TODO FIXBUG 10/100points + +#include +using namespace std; + +#define int long long + +#ifdef DEBUG +#define PRINT_ARRAY(arr,size){cout<<#arr<<" [";for(int i=1;i<=(size);i++)cout<>n>>m>>w; + PRINT_VALUE(n); + PRINT_VALUE(m); + PRINT_VALUE(w); + for (int i=1; i<=m; i++) { + point &pi = points[i]; + cin>>points[i].l>>points[i].r>>points[i].v; + if (pi.v==-1) { + pi.v=0; + // DEBUG_CODE(pi.v=w;) + diff_unkown_num[pi.l]++; + diff_unkown_num[pi.r+1]--; + } + PRINT_VALUE(i); + PRINT_VALUE(pi.l); + PRINT_VALUE(pi.r); + PRINT_VALUE(pi.v); + diffv[pi.l]+=pi.v; + diffv[pi.r+1]-=pi.v; + } + PRINT_ARRAY(diff_unkown_num, n); + PRINT_ARRAY(diffv, n); + + int *raw=diffv; + int *raw_unkown_num=diff_unkown_num; + for(int i=1;i<=n;i++){ + raw[i]=raw[i-1]+diffv[i]; + max_v=max(max_v,raw[i]); + raw_unkown_num[i]=raw_unkown_num[i-1]+diff_unkown_num[i]; + } + PRINT_ARRAY(raw_unkown_num, n) + PRINT_ARRAY(raw, n); + for (int i=1; i<=n; i++) { + PRINT_VALUE(raw_unkown_num[i]*w); + PRINT_VALUE(max_v-raw[i]); + if(max_v-raw[i]<=(raw_unkown_num[i]*w)){ + cout<<1; + }else { + cout<<0; + } + } + cout<