夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

昨日

とりあえず。
今日は忙しいかもしれません。

2437

始点を更新するようにやるとボツるらしいです。
しっかり最後の端をおぼえとかなあかん

#include <cstdio>
#include <cmath>
#include <map>
#include <algorithm>
#define f first
#define s second
using namespace std;
int main() {
    int n, l;
    scanf("%d%d",&n,&l);
    int ls=-1, res=0;
    pair<int, int> mud[n];
    for (int i=0; i<n; i++) {
        scanf("%d%d",&mud[i].f,&mud[i].s);
    }
    sort(mud, mud+n);
    for (int i=0; i<n; i++) {
        int s=mud[i].f, e=mud[i].s;
        if (e<ls) continue;
        ls=max(ls,s);
        int k=(e-ls)/l+((e-ls)%l!=0);
        ls+=k*l; res+=k;
    }
    printf("%d\n",res);
}

3624

全然通らなくてネットでみんな配列グローバルにしてたのでそうしたら通った。

#include <cstdio>
#include <algorithm>
using namespace std;
int n,m,w[3402],v[3402];
int dp[12881];
int main() {
    scanf("%d%d",&n,&m);
    int ans=0;
    for (int i=0; i<n; i++) scanf("%d%d",&w[i],&v[i]);
    for (int i=0; i<m; i++) dp[i]=0;
    for (int i=0; i<n; i++) {
        for (int j=m; j>=w[i]; j--) {
            dp[j]=max(dp[j],dp[j-w[i]]+v[i]);
            ans=max(ans,dp[j]);
        }
    }
    printf("%d\n",ans);
}

2231

なんだかんだやるだけですが、気をつけようと思ってたのにlong longにするの忘れてていろいろ試して大量WA

#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
int main() {
    int n; scanf("%d",&n);
    int cow[n];
    for (int i=0; i<n; i++) scanf("%d",&cow[i]);
    sort(cow, cow+n);
    ll dis=0;
    for (int i=0; i<n; i++) {
        for (int j=i+1; j<n; j++) dis+=abs(cow[j]-cow[i]);
    }
    printf("%lld\n",dis*2);
}