A题中说前XX张可以享受试印价,此时应当既可享用试印价,也可享用原价,但实际交上去后WA了,如有问题请修复

8 条评论

  • @ 2026-9-1 13:05:57

    显然不能自己定用什么价

    • @ 2026-8-31 20:23:20

      OK 谢谢

      • @ 2026-8-31 20:22:44

        这我代码:

        void work()
        {
        	cin >> n >> x >> a >> b;
        	if (a > b) a = b;
        	int a1 = min(n, x);
        	int a2 = n - a1;
        	cout << a1 * a + a2 * b << endl;
        }
        

        就是问一下,怕大家把题意理解错了。 这是修正后能过得代码:

        void work()
        {
        	cin >> n >> x >> a >> b;
        	//if (a > b) a = b;
        	int a1 = min(n, x);
        	int a2 = n - a1;
        	cout << a1 * a + a2 * b << endl;
        }
        
      • @ 2026-8-31 20:22:10

        @

        你想的太多了,他说 前 xx 张可以享受试印价,意思是前 xx 张,每张 aa 元,不是两面关系,也就是

        int sum=x*a;
        

        那后面是每张 bb 元,即:

        int ans=(n-x)*b;//n-x就是从x+1~n
        

        code

        #include <bits/stdc++.h>
        using namespace std;
        #define int long long 
        int n,x,a,b;
        signed main() {
        	cin>>n>>x>>a>>b;
        	if(n<=x){
        		cout<<n*a;
        	}
        	else{
        		cout<<x*a+(n-x)*b;
        	}
        } 
        

        或:好看一点

        #include <bits/stdc++.h>
        using namespace std;
        #define int long long 
        int n,x,a,b;
        signed main() {
          //现写的,应该AC
        	cin>>n>>x>>a>>b;
          if(n<=x)return cout<<n*a,0;
        	int sum=x*a;
          int ans=(n-x)*b;
          cout<<sum+ans;
        } 
        

        注:我码风不好看,能看就行,开long long ! ! !

        • @ 2026-8-31 19:53:25

          没开long long???

          • @ 2026-8-31 19:52:18

            你要尽可能多赚些啊qwq。。。不得不说这何尝不是一种贪心?

            • @ 2026-8-31 19:34:08

              代码:

              #include <bits/stdc++.h>
              using namespace std;
              #define int long long
              int n,x,a,b;
              int ans;
              signed main ()
              {
              	cin>>n>>x>>a>>b;
              	if (n>x) ans=ans+x*a+(n-x)*b;
              	if (n<=x) ans=n*a;
              	cout<<ans<<'\n';
              	return 0;
              }
              

              超简单!!!

              • @ 2026-8-31 19:50:39

                居然和我的一样!!!

                #include <bits/stdc++.h>
                using namespace std;
                #define int long long 
                int n,x,a,b;
                signed main() {
                	cin>>n>>x>>a>>b;
                	if(n<=x){
                		cout<<n*a;
                	}
                	else{
                		cout<<x*a+(n-x)*b;
                	}
                } 
                
              • @ 2026-8-31 19:51:11

                @ +1

              • @ 2026-9-11 17:16:45

                拉完了

                #include<bits/stdc++.h>
                using namespace std;
                
                void solve()
                {
                	long long n,x,a,b; cin>>n>>x>>a>>b;
                	cout<<min(x,n)*a+max(0ll,(n-x)*b)<<endl;
                }
                
                int main()
                {
                	// int ttt; for(cin>>ttt;ttt--;)
                	solve();
                	return 0; 
                }
                
                
            • @ 2026-8-31 18:03:47

              #include<bits/stdc++.h> using namespace std; int main(){ long long n,x,a,b,c=0,d=0; cin>>n>>x>>a>>b; if(n<=x){ cout<<na; }else{ c=xa; d=(n-x)*b; cout<<c+d; } }

            • 1