rt,不是一个人的
#include<bits/stdc++.h>
using namespace std;
int v[100010],a[100010],dp[100010];
int main(){
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
int n,d;
cin>>n>>d;
for(int i=0;i<n-1;i++){
cin>>v[i];
}
for(int i=0;i<n;i++){
cin>>a[i];
}
int minn=1e9,r=0;
int sum=0,ans=0;
for(int i=0;i<n;i++){
if(a[i]>=minn){
sum+=v[i];
}
else{
int num=0;
sum-=r;
num+=sum/d;
if(sum%d)num++;
ans+=num*minn;
r=num*d-sum;
minn=a[i];
sum=v[i];
}
}
int num=0;
sum-=r;
num+=sum/d;
if(sum%d)num++;
ans+=num*minn;
r=num*d-sum;
minn=a[n-1];
cout<<ans;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int maxm = 1000;
int t,m,pri[100005],cnt;
bool vis[1000005];
int gcd(int a,int b)
{
if (!b) return a;
return gcd(b,a % b);
}
void mkpr(int a)
{
for (int i = 2;i <= a;i++)
{
if (!vis[i])
{
pri[++cnt] = i;
for (int j = 2;j <= a / i;j++) vis[i * j] = true;
}
}
}
int sqt(int a)
{
int ans = 1;
for (int i = 1;i * i <= a;i++)
while (a % pri[i] == 0)
{
a /= pri[i];
if (a % pri[i] == 0)
{
a /= pri[i];
ans *= pri[i];
}
}
return ans;
}
void prt1(int a,int b)
{
if (b < 0) {a = -a; b = -b;}
int tmp = gcd(abs(a),b);
a /= tmp; b /= tmp;
printf("%d",a);
if (b != 1) printf("/%d",b);
}
void prt2(int a,int b,int r)
{
if (b < 0) {a = -a; b = -b;}
int tmp = gcd(abs(a),b);
a /= tmp; b /= tmp;
if (a != 1) printf("%d*",a);
printf("sqrt(%d)",r);
if (b != 1) printf("/%d",b);
}
void slv(int a,int b,int c)
{
int r = b * b - 4 * a * c,lfz,rfz;
if (r < 0)
{
printf("NO\n");
return;
}
lfz = -b;
rfz = sqt(r);
r /= rfz * rfz;
if (r == 1) lfz += rfz;
if (lfz == 0 && (r == 0 || r == 1)) putchar('0');
if (lfz) prt1(lfz,2 * a);
if (lfz && r > 1) putchar('+');
if (r > 1) prt2(rfz,2 * a,r);
putchar('\n');
}
int main()
{
freopen("uqe.in","r",stdin);
freopen("uqe.out","w",stdout);
mkpr(maxm * maxm);
int a,b,c;
scanf("%d %d\n",&t,&m);
while (t--)
{
scanf("%d %d %d\n",&a,&b,&c);
slv(a,b,c);
}
return 0;
}