1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
NISA [10]
4 years ago
12

There are n tasks to complete. Each task first needs to be preprocessed on a supercomputer and then finished on one of n process

ors. Task i requires pi seconds of preprocessing on the supercomputer followed by fi seconds on some processor to complete. Note that tasks are fed to the supercomputer sequentially but can be executed in parallel on different processors once they have been preprocessed. The process terminates when all tasks have been completed. The duration of the process is the total time until termination. Give an efficient algorithm that determines an ordering of the tasks for the supercomputer that minimizes the duration of the process, as well as the minimum duration.
Computers and Technology
1 answer:
evablogger [386]4 years ago
7 0

Answer:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

int main()

{

ll i,n,j,s;

cout<<"Enter size of array: ";

cin>>n;

ll a[n];

cout<<"Enter elements of array: ";

s=0;

for(i=0;i<n;i++)

{

cin>>a[i];

s+=a[i];

}

if(s%3!=0)

{

cout<<"No";

return 0;

}

ll dp[n][s/3+1];

for(i=0;i<=s/3;i++)

{

if(i==a[0])

dp[0][i]=1;

else

dp[0][i]=0;

}

for(i=0;i<n;i++)

dp[i][0]=1;

for(i=1;i<n;i++)

for(j=0;j<=s/3;j++)

{

if(j<a[i])

dp[i][j]=dp[i-1][j];

else

dp[i][j]=dp[i-1][j]||dp[i-1][j-a[i]];

}

if(dp[n-1][s/3]==0)

{

cout<<"No";

return 0;

}

ll vis[n];

for(i=0;i<n;i++)

vis[i]=0;

ll curr=s/3;

ll indx=n-1;

ll c=0;

while(indx>0)

{

if(dp[indx][curr]==1&&(curr-a[indx]>=0&&dp[indx-1][curr-a[indx]]==1))//include indx

{

vis[indx]=1;

curr=curr-a[indx];

c++;

}

indx--;

}

if(dp[0][curr]==1){

vis[0]=1;

c++;}

ll b[n-c];

ll k=0;

for(i=0;i<n;i++)

{

if(vis[i]==0)

b[k++]=a[i];

}

ll dp1[k][s/3+1];

for(i=0;i<=s/3;i++)

{

if(i==b[0])

dp1[0][i]=1;

else

dp1[0][i]=0;

}

for(i=0;i<k;i++)

dp1[i][0]=1;

for(i=1;i<k;i++)

for(j=0;j<=s/3;j++)

{

if(j<b[i])

dp1[i][j]=dp1[i-1][j];

else

dp1[i][j]=dp1[i-1][j]||dp1[i-1][j-b[i]];

}

if(dp1[k-1][s/3]==0)

{

cout<<"No";

return 0;

}

else

cout<<"Yes";

}

Explanation:

You might be interested in
In addition to the ping command, what other command is useful in displaying network delay and breaks in the path to the destinat
Natalija [7]
Tracert (windows) or traceroute (linux) will display the hops in the path between source and destination.
8 0
3 years ago
Read 2 more answers
Why did artists use pinhole cameras during the renaissance?
murzikaleks [220]
<span>Pinhole cameras were one of the most sophisticated devices of the period, it made tasks much easier it basically worked exactly like the human eye and is something just like tracing.

Hope it helps! :)</span>
3 0
3 years ago
_____ is used to temporarily hold small units of program instructions and data immediately before, during, and after execution b
Mazyrski [523]

Answer: A register

Explanation:

Registers are small memory used to store data or values and supply them to the processor as and when needed. These register hold the data temporarily and hold small units of program instructions. So whenever the CPU wants to work on data they have to be made available through the registers. Even after a arithmetic operation the registers serve as buckets for holding the value.

There are different types of registers such as register A, B, C etc and these registers lie in close proximity to the CPU so that we could provide the data immediately and much faster when asked by the CPU.

Therefore we can say that registers are used to temporarily hold small units of program instructions and data immediately before, during, and after execution by the central processing unit (CPU).

8 0
4 years ago
Can you call a mobile a computer. It Yes<br>why? If No why​
Lera25 [3.4K]

Answer:

Yes

Explanation:

You can call mobile a computer because it come under one of the categories of the computer.

That category being microcomputers.

6 0
4 years ago
Read 2 more answers
.true or false? one disadvantage of cloudware is that it is never free<br> A. true<br> B. false
ser-zykov [4K]

Answer:

true

Explanation:

cloudware is used for many reasons and It is sometimes too much of an expense to the company

7 0
3 years ago
Other questions:
  • Ok, so this isn't a tech question it's about a game, moomoo.io so don't hate on this if you don't know it, 40 points to whoever
    12·2 answers
  • How to do pseudocode and flowchart in BMI ( computer programming ​
    11·1 answer
  • Tanya has received an email, apparently from her bank, stating that some of her records were lost during server maintenance work
    14·1 answer
  • A descriptive study represents the highest level on the knowledge-level continuum.
    11·1 answer
  • Which element would the search element be compared to first, if abinary search were used on the list above?
    6·1 answer
  • A program runs from start to finish, producing unexpected results, though no error message is received. What most likely occurre
    15·1 answer
  • What Are the Benefits of Using Leads Automation Tool?
    5·1 answer
  • Create a program which reads in CSV data of Creatures and loads them into aHash Map. The key of this hash map will be the name o
    10·1 answer
  • What can i say back to my IT school lady?
    8·1 answer
  • In a database, what term is used to describe a group of fields that are all associated with and accessed using single primary ke
    8·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!